After using Hudson for continuous integration with a prior project, I want to set up a continuous integration server for the iPhone projects I'm working on now. After doing some research it looks like there aren't any CI engines designed specifically for Xcode, but one guy has had success using Cruise Control combined with the xcodebuild CLI tool. Has anyone here tried this? Are there any CI engines that work well with Xcode projects?
I'm probably going to give Cruise Control a try. I'll post an answer with my findings.
Continuous integration, or CI as it will be referred to from here on, is an ecosystem of software, usually more than one package, that allows you to test and deploy your iOS apps with minimal manual involvement, sometimes even none.
In Xcode on your development Mac, you set up bots that run on the server. These bots process your apps, using the source code in your repository, and report back the results. Each run of a bot is called an integration, and these runs occur regularly throughout the development life cycle of your app.
Continuous Integration and Continuous Delivery (CI/CD) for iOS enable us to improve our build deploys. We're able to release updates at any time in a sustainable way without the hurdle of doing it manually every time.
Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers.
I'm successfully using Hudson on the mac with xcodebuild. With the release of the 3.0 iPhone sdk you have compete control over the target, configuration and sdk that the project is to be built against.
It's as simple as creating a build step in hudson and telling xcodebuild to build the project:
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1
The upfront work has paid off for me as my builds just work without any additional thought. I've written a detailed description on my blog if anyone is interested.
iPhone app distribution made easy
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With