Today I got to sink my teeth into Xcode 5’s continuous integration (CI) capabilities on a Mac Mini running OS X Mavericks and Server Developer Previews.
Since the software is still under NDA, I can’t elaborate on any details, but I can share my experience. In short: I got it working, but man it sucked to get there.
For the 5th Developer Preview, with the release coming around the recently confirmed iPhone 5S/6 announcement on Sept 10, there are still a good number of bugs (many of which I reported like a good developer). Granted this is essentially a 1.0 release of a substantial piece of software so this is to be expected, but I hope some of these get ironed out soon so the coolness of their CI solution may be fully realized.
Again, sparing details, Apple has been doing a lot to simply and automate the provisioning profile and certificate management experience – both in Xcode 5 and on the CI server – but as a result there are a lot more things that can go wrong that the developer doesn’t have much visibility into. And as of now, a lot goes wrong with the new automated processes.
But this isn’t really a new issue: prior to this point, I have become accustomed to manually managing all provisioning profiles and developer/distribution certificates because the semi-automated systems never seemed to work right for me. However, now all of the UI for this manual management has been largely stripped in the new version. Don’t get me wrong, I think the new methodology will be great if they iron out the bugs as manual management of this stuff is not ideal for the developer community at large.
So, I bring this up because the CI server must compile and sign code, and therefore have all of the correct provisioning profiles and certificates must be downloaded and installed to do this. In the new OS X Server tool, acquiring these components is supposed to be very straightforward (the user experience is for sure in the right direction), however execution just isn’t there yet. I basically had to resort to performing the broken tasks myself via CLI, and only then could I get it working properly.
Once that got squared away, I did get to see how awesome and powerful Bots are going to be for developers that can benefit from CI. We are already planning automatic deployments to TestFlight, which ensures our testers will be able to use our latest and greatest builds to test without any manual deployment steps required by a developer.
I’m really excited that Apple decided to add CI as a feature to Xcode, I just hope the final release is substantially more stable than it is now.
See more about Apple’s upcoming Xcode improvements here: https://developer.apple.com/technologies/tools/whats-new.html