#!/bin/bash # # (Above line comes out when placing in Xcode scheme) # # Valid and working as of 11/4/2014 # Xcode 6.1, XCode Server 4 # API_TOKEN="" TEAM_TOKEN="" DISTRIBUTION_LISTS="" PROVISIONING_PROFILE="/Library/Developer/XcodeServer/ProvisioningProfiles/.mobileprovision" SIGNING_IDENTITY="" # EXAMPLE: "iPhone Distribution: Company, Inc." # DO NOT EDIT BELOW HERE! ######################################## DSYM="${ARCHIVE_DSYMS_PATH}/${PRODUCT_NAME}.app.dSYM" IPA="/tmp/${PRODUCT_NAME}.ipa" APP="/tmp/Archive.xcarchive/Products/Applications/${PRODUCT_NAME}.app" # Remove previous archive files from tmp folder echo "Removing old Archive files from /tmp..."; /bin/rm -rf /tmp/Archive.xcarchive* # Copy over the latest archive to tmp folder echo "Copying latest Archive to /tmp..."; /bin/cp -Rp "${ARCHIVE_PATH}" "/tmp/" # Create .ipa in tmp folder echo "Creating .ipa for ${PRODUCT_NAME}..." /bin/rm "${IPA}" /usr/bin/xcrun -sdk iphoneos PackageApplication -v "${APP}" -o "${IPA}" --sign "${SIGNING_IDENTITY}" --embed "${PROVISIONING_PROFILE}" echo "Created .ipa for ${PRODUCT_NAME}." # Zip .DSYM echo "Zipping .dSYM for ${PRODUCT_NAME}..." /bin/rm "${DSYM}.zip" /usr/bin/zip -r "${DSYM}.zip" "${DSYM}" echo "Created .dSYM for ${PRODUCT_NAME}." # Upload files to TestFlight echo "*** Uploading ${PRODUCT_NAME} to TestFlight ***" /usr/bin/curl "http://testflightapp.com/api/builds.json" \ -F file=@"${IPA}" \ -F dsym=@"${DSYM}.zip" \ -F api_token="${API_TOKEN}" \ -F team_token="${TEAM_TOKEN}" \ -F distribution_lists="${DISTRIBUTION_LISTS}" \ -F notes="Build uploaded automatically from Xcode Server Bot." echo "TestFlight upload finished!"