Xcode 5 bots and Testflight automated builds

Mark picture Mark · Oct 24, 2013 · Viewed 7.1k times · Source

First I have a Mac Mini running Server on Mavericks and have Xcode 5 installed. On the server I have my iOS projects set up with Bots to run automated builds of my Github repo on each commit to master. What I want to find out is if anyone already has configure this kind of setup to work with automated builds being sent to TestFlight.

The script that worked previously with a Jenkins build process is pasted below, but throws an error and doesn't upload when the bot completes it's build. I have this script run on the "post-action" of the archive process of my app.

Server log error:

Print: Entry, "CFBundleVersion", Does Not Exist

error: Specified application doesn't exist or isn't a bundle directory : '/Library/Server/Xcode/Data/BotRuns/Cache/s892fj1n2-f4bb-2514-522v-2a23d0f0c725/DerivedData/Build/Products/Debug-iphoneos/myApp.ipa'

Script:

 PLIST_FILE=$(echo -n "${SRCROOT}/${INFOPLIST_FILE}")
 BUILD_TYPE=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PLIST_FILE}")
 API_TOKEN="<API_TOKEN>"
 TEAM_TOKEN="<SECRET>"

 APP="${BUILD_ROOT}/Debug-iphoneos/${FULL_PRODUCT_NAME}"

/bin/rm "/bots/${PRODUCT_NAME}.ipa"
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${APP}" -o "/bots/${PRODUCT_NAME}.ipa"

/usr/bin/curl "http://testflightapp.com/api/builds.json" \
-F file=@"/bots/${PRODUCT_NAME}.ipa" \
-F a      pi_token="${API_TOKEN}" \
-F team_token="${TEAM_TOKEN}" \
-F notes="Build uploaded automatically from server." \
-F distribution_lists="internal"

UPDATE 11/20:

A good resource to try: TestFlight Bots

I didn't get it to work a couple weeks ago but the post has been updated since I last tried.

Answer

Truth picture Truth · Oct 29, 2013

This looks like a permissions issue. Are you able to access \Library\XCode\Data folder? I was able to run your script (other than upload to testflight). I had to give read access to \Data and write access to destination folder and I see the ipa created.