I was testing out automated builds using Xcode Runner (build 506) in TeamCity 7.0.3 and here I hit the wall which I would like to share with you.
At this point I still didn't fine tune pretty much anything with the TC installation, so defaults should apply. I created a new project for an automated Xcode build, thus hit "Run" to trigger a manual build, then TC checked out from a local git bare repository's master branch to it's working directory and try build there. Unfortunately build will fail with the following log:
[13:11:51]Checking for changes
[13:11:52]Publishing internal artifacts
[13:11:52][Publishing internal artifacts] Sending build.start.properties.gz file
[13:11:52]Clearing temporary directory: <TeamCity Directory>/buildAgent/temp/buildTmp
[13:11:52]Checkout directory: <TeamCity Directory>/buildAgent/work/77af1b8fb78e64de
[13:11:52]Repository sources transferred
[13:11:52]Updating sources: server side checkout (5s)
[13:11:57]Building project: <TeamCity Directory>/buildAgent/work/77af1b8fb78e64de/src/<Project Name>.xcodeproj
[13:11:58]Starting: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace src/<Project Name>.xcodeproj/project.xcworkspace -scheme <Scheme Name> TEST_AFTER_BUILD=NO clean build
[13:11:58]in directory: <TeamCity Directory>/buildAgent/work/77af1b8fb78e64de
[13:12:00]xcodebuild: error: 'src/<Project Name>.xcodeproj/project.xcworkspace' does not exist.
[13:12:00]Build settings from command line:
[13:12:00] TEST_AFTER_BUILD = NO
[13:12:00]Process exited with code 66
[13:12:00]Publishing internal artifacts
[13:12:00][Publishing internal artifacts] Sending build.finish.properties.gz file
... where <TeamCity Directory>, <Project Name> and <Scheme Name> are configured just fine.
Let me explain what's is wrong here: basically doing a fresh checkout on git repository there's no such directory called "project.xcworkspace", because it's ignored by VCS on purpose (see https://github.com/github/gitignore/blob/master/Objective-C.gitignore why).
How do you think should I proceed or is this something that Xcode Runner should improve in it self?