Buildserver for MonoTouch upon OS X? - continuous-integration

I am taking my first steps in the world of iPhone/iPad development with MonoTouch and wish to adopt the practices that I adhere to in my "day" job.
Is there a buildserver for OS X that plays nice with MonoTouch/Nunit?
Thanks kindly,
Dan

Assuming you have MonoDevelop and MonoTouch installed, you can build solutions using the MonoDevelop commandline tool:
/Applications/MonoDevelop.app/Contents/MacOS/mdtool build
For options, run
/Applications/MonoDevelop.app/Contents/MacOS/mdtool build --help

I don't know how you'd get the actual iPhone project to build but of you farm out as much as you can to seperate projects so only the bits that need the funky MT references are in the central UI project you can at least build the rest as normal.
I've just started using TinyIoc which will help in this regard.
As for a specific build server - isnt TeamCity built using Java and Appache? If so there should be no reason why this won't work on your OSX.
That said - why would you want the build server on the same physical machine you dev on?

Related

Xcode Provisioning Profile issue on GitLab CI Build machine

We have a team of developers that work independtly on separate apps using XCode, locally we can build etc and any issues with provisioning profile Xcode automatically sorts out.
We use GitLab as our main repository and have set up a runner on a Mac mini to handle our distribution builds.
Now generally this works fine, until we change our provisining profile (mainly by adding in app purchasing or push notifications). When this happens our local laptops auto syncs with apple and update the profile locally.
When we come to build on Mac mini, it fails due to profile not containing relevant info.
If we go to the Mac mini, load Xcode, build our projects, its fine after that but this step is causing problems, mainly as most engineers aren’t office based, so have to make a special trip in to sort the Mac mini.
Is there a solution to this?
How do others handle it?
IS there a command line option to force Xcode to update profiles before we build, which we could add to the CI script.
Is there a way of embedding the profile into projects?
Thanks

IDE/Hosting issues w/ Meteor/WebStorm/Cloud9

My next work project is going to be using the Meteor framework. Our team recently got licensed to use WebStorm IDE, which has been our favorite up until this point. so we were planning on continuing the project with it.
That is, until it was time to install it. Then we found out that the Windows version of Meteor is only partially finished, and all of our development PC's are windows based.
So we were considering as a work-around for this, we may use Cloud9 as our development IDE, as it supports Meteor. The sharing functions may help our team productivity a bit as well.
But this has some problems...
First, we just invested in WebStorm, so we would ideally like to use it as our primary IDE. But I do not know how we would be able to work with WebStorm if we can not run an up to date version of Meteor on our windows systems?
Second, I'm not sure if it's even possible to use Cloud9 as the development IDE, but then move the C9 project over to our Ubuntu server for hosting when it is time to go live?
Third, even if we could deploy to our Ubuntu server after C9, we plan on many updates to our live application after deployment. I'm not sure if there would be issues with this if our development is on C9 and deployment on a completely different server.
So I'm wondering if anyone has a potential solution for these issues? Is there any way for us to work with Meteor on our live Ubuntu server, or Cloud9, from WebStorm on our Windows systems? Or any way we could integrate Cloud9 and WebStorm together for the best of both worlds? Or any way we could use a Linux emulator or something to allow us to use Meteor on our local windows system, without making it difficult for multiple developers to work on the project at the same time?
Thanks in advance!
The Windows port of Meteor actually is working quite well; the only major issue is that mobile development doesn't work. That is going to be fixed in Meteor 1.1 anyway, whose primary goal is to get Windows support up to that of Linux and Mac OS X.
As the user who initially pushed for Webstorm to add Meteor support back in October 2012, I'd recommend starting with Webstorm and Meteor on Windows right away, unless you need mobile development. In that case, you need native *nix machine (an Ubuntu VM on Windows won't be able to run the Android emulator, for example).
WebStorm also supports server-side Meteor debugging, and they're pretty responsive when it comes to fixing bugs you report on YouTrack. See for example https://youtrack.jetbrains.com/issue/WEB-13490
With Cloud9, you cannot currently SSH into a workspace you have, so a hybrid Webstorm/Cloud9 situation might not be doable at this point.
As for deploying your stuff from Cloud9, that is very doable. There's some documentation here about that: https://docs.c9.io/v1.0/docs/deploying-via-the-command-line

Build and Archive Is Disabled

I've read every other thread on this and have tried everything but the "Build and Archive" function is determined not to be clicked.
I am running OSX 10.6.7 and Xcode 3.2.4. I am developing a MAC application and am trying to submit it to the Mac App Store, but to do this i need to run the Build and Archive feature, and I simply cannot figure out how to get it to run. I have heard about these "developer tools 1.1" from some other thread but cannot find those either. If you are about to say that that will fix things, then please link me, otherwise, any suggestions are greatly appreciated.
P.S. Yes im in Release Mode
Another answer could be that your active SDK should be set to Device not to simulator. You can find this setting in Project > Set Active SDK > Device.
Happy Coding..!
Figured it out... In order to Build and Archive with a Mac App (as opposed to iOS) you need Xcode 3.2.5 (maybe even 3.2.6) or better. So to all those with the same problem, make sure you are running the lasest version before trying ot Build and Archive.

Xcode Only Gives Me Desktop Architectures for iOS App

I have an iOS project that I've put in Dropbox to work with a few friends. The issue is that it seems to get "corrupted", so that after some time (after someone else has accessed the Xcode project file), when I try to go and open it again I get a Base SDK Missing error. In the Project Settings, I discover that I'm missing the valid ARM6/ARM7 architecture for iOS apps—I can only choose from 32-bit or 64-bit Intel. My only other options are i386, various forms of PPC, and x86_64. I simply can't build for iOS anymore.
No one else that I'm working with seems to have this problem. It exists in both Xcode 3 and 4, so it's not an Xcode 4 issue either.
Is anyone else having this problem? Is there a fix?
In these cases it's often a good idea to 'Clean All Targets'. I have found that particularly after upgrades to XCode where platforms or architectures have changed, that XCode can become confused about the state of previous builds. Cleaning, then re-specifying your desired targets/architectures/etc and then rebuilding will work well.
Also don't forget that if you hold Alt (or Option) down when you click on the Active build settings drop down will give you additional options.
Can you reinstall XCode? Also, it might be wiser to host the project under source control.
Hehe...turns out that the project had been used under the 4.2 SDK and at the time I only had 4.0, which explained the missing SDK part...Updated to 4.2 and it's all fixed now.
Source control would've been nice, but there aren't that many good ones that support the features we need (for free); if anyone's got a guide to installing Subversion on OS X and using it (without being too technical read Terminal), I'd appreciate that. Or how to set up Git with Xcode 4 (although I know that's under NDA, so that's probably not going to happen).

Blackberry Development on Mac OS X

I recently started creating applications for mobile devices and have successfully completed an application for the iPhone. I am now turning my attention to the Blackberry but haven't been able to find a convincing article or website that states that it can be done or a tutorial on how to do so. Can Blackberry apps be developed on Mac OS X? If yes, how do I go about doing so? Can anyone please point me in the right direction as I only have access to a Mac and really want to get this project on the road. Thanks in advance for your help.
UPDATE:
RIM has released a MacOS Eclipse plug-in for Blackberry Development: http://na.blackberry.com/eng/developers/javaappdev/macosx.jsp
While there is no built-in simulator, the plug-in DOES support USB tethered device debugging for the Torch 9800 handhelds. I plan to get one; they are ~$499 w/no contract. With a Torch and the new plug-in, Blackberry development is possible without using a VM. (Finally!)
PREVIOUS POST:
Building on MacOS works well once you set it up. I've had less luck with the simulator. On the whole though, being able to run Eclipse natively in MacOS and flip to a Windows VM only for debugging is a big win in my book.
You can get a MacOS version of preverify (see link below for details). I do my development with Eclipse on MacOS X and use Ant to build BB apps.
This blog is excellent and has many of the details to get you started:
http://www.azizuysal.com/2009/07/blackberry-development-on-mac-os-x.html (original link is dead. The "wayback machine" provides us with the original text content, but images and styling are lost to the sands of time. Still worth a read.)
The tricky part is getting the simulator to work. There is a Wine-based work-around, but on my computer, while the simulator was able to run under Wine, the LCD output was scrambled.
Currently, I build COD files from Mac, and my Ant build process drops them into a directory that is shared with a WinXP VM. I can run the simulator stand-alone in this VM. Debugging is also possible by installing Eclipse inside WinXP and pointing the debug configuration it at the source directories.
I've actually got a bit more magic. I enabled some of the Java 1.5 features by compiling against 1.5 and then translating the bytecode to 1.3 prior to the preverify script. (Blackberry only speaks a barbaric 1.3 java, flashback to circa 1992). It's not a silver bullet as some features still don't work, but it does cut down on the need to make everything an untyped Object reference.
Lately, I've been working on a x-platform framework to allow me to write app code once and build against both Android and Blackberry (both are Java). The Android part was easy. It's just a bitch to debug anything in Blackberry. Someone working at RIM decided that Blackberry didn't need to keep Exception stack traces unless there was a catch(Throwable), and then they could do something bizarre, non-standard, and undocumented (catching Throwable behaves weird). I've only kinda-sorta figured out a hack to get stack traces using JavaLoader.exe without breaking into the debugger, and it's barely worth it.
p.s., I now do x-platform development with a single code-base targeting Android, Blackberry, and Desktop. Desktop is great for testing app functionality, with very little Blackberry on-device testing needed once features work in the desktop 'simulator' (a Swing GUI built for debugging our games).
Even though certain components of the RIM development platform are java-based, such as the JDE - other components such as the preverifier and device simulators are implemented as native Windows executables.
Basically, the easiest way to do it is to install Windows on your Mac using Bootcamp or Parallels and run inside a real Windows environment on your Mac.
However, there are other "hackier" ways to do it using Wine, MacPorts, and a number of other tools - as an example see this blog post

Resources