Xcode, TFS and the ALM …
Many organizations have been faced with centralizing all of their ALM tools in order to enable better integration across all the tools for each role in your app lifecycle. Team Foundation Server (TFS) provides an excelllent integration environment for Microsoft .NET projects and even application developed in Eclipse (Java, Android, etc.). There have been many recent advances into the mobile space especially in iOS applications and my work is certainly no exclusion to this. Since CEI has adopted TFS as our ALM platform I have been keeping all of my Xcode projects in TFS via the Subversion bridge.
But what about builds?
While storing Xcode projects in TFS works quite well (including the ability to associate with Work Items) one of the primary features of TFS (and any integrated ALM platform) is Build Automation. Since Xcode projects can ONLY be built on Mac OS X there simply was no way to trigger a build using Team Build in TFS. Alternatives exists, for sure … there are other CI platforms that can be triggered via SVN (svnbridge in TFS) but that requires more investment in software.
What I wanted was a solution leveraging Team Build as much as possible and a Mac only where it was needed to compile the Xcode project. The thought of implemeting a Team Build Agent on the Mac was …. frightening 😉 So, instead, I decided to automate copying the source code from the Team Build server to the Mac (using SCP), remotely triggering xcodebuild (via SSH), and finally retrieving the results (again, via SCP). It turns out this was pretty straight-forward and reliable. To share this, I created a Codeplex project to host the source code and binaries.
TFS Xcode Build v1.0
Check out the project hosted on Codeplex here: http://tfsxcodebuild.codeplex.com/. There you can find the latest source code, binary release and documentation.