22

コード、スクリーンショットなどで前述のブログの書式設定に時間を費やしましたが、これはStack Overflowで重複しすぎてしまいました。それはコミュニティーがこの分野でいくつかの助けを求めていると私は思っていました(私は長い間、それをすべて考え出して苦労しました)ので、この質問とそれぞれの答えを投稿しました。あなたはまだこの投稿の意図が悪いと思うなら、そのようにコメントしてください、私はそれを削除します!Xcode BotからTestFlightに自動ビルドを導入するにはどうすればよいですか?

質問:完成したビルドを試験飛行を介してテスターに​​継続的に統合して送信するために、ボットを使って新しいXcodeサーバーを構成するにはどうすればよいですか?私にとっては、これはiOSの世界でCIの聖杯のように思えるので、私はそれを理解するのに多くの時間を費やしました。

このプロセスには、少なくとも最初のリリースで、MavericksのXCodeサーバーソフトウェアによって正しく行われていないような手作業が含まれています。それは私に多くの時間とそれをすべて理解し、それを動作させるためにいくつかのスクリプティングを必要とし、結果を共有することができてうれしいです。

この質問に価値を追加するため、私は、以下のアーカイブプロセスで実行する必要があるポスト演算スクリプトを投稿しました。下記の私のブログへのリンクは、より多くの情報が必要な場合は、詳細なステップを提供します。

#!/bin/bash 
# 
# (Above line comes out when placing in Xcode scheme) 
# 
# Valid and working as of 10/29/2013 
# Xcode 5.0.1, XCode Server 
# 
API_TOKEN="<Your TesFlight API Token>" 
TEAM_TOKEN="<Your TestFlight Team Token>" 
DISTRIBUTION_LISTS="<Comma separated TestFlight Distribution List Names for auto deploy>" 
PROVISIONING_PROFILE="/Library/Server/Xcode/Data/ProvisioningProfiles/<your file name here>.mobileprovision" 
#EXAMPLE:"/Library/Server/Xcode/Data/ProvisioningProfiles/DocLink_InHouse_2013.mobileprovision" 

SIGNING_IDENTITY="<your provisioning profile name here>" 
#EXAMPLE:"iPhone Distribution: Unwired Revolution, LLC." 

# DO NOT EDIT BELOW HERE! 
######################################## 
DSYM="/tmp/Archive.xcarchive/dSYMs/${PRODUCT_NAME}.app.dSYM" 

IPA="/tmp/${PRODUCT_NAME}.ipa" 

APP="/tmp/Archive.xcarchive/Products/Applications/${PRODUCT_NAME}.app" 

# Clear out any old copies of the Archive 
echo "Removing old Archive files from /tmp..."; 
/bin/rm -rf /tmp/Archive.xcarchive* 

#Copy over the latest build the bot just created 
echo "Copying latest Archive to /tmp/..."; 
LATESTBUILD=$(ls -1rt /Library/Server/Xcode/Data/BotRuns | tail -1) 
/bin/cp -Rp "/Library/Server/Xcode/Data/BotRuns/${LATESTBUILD}/output/Archive.xcarchive" "/tmp/" 

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 "Done with IPA creation." 

echo "Zipping .dSYM for ${PRODUCT_NAME}" 
/bin/rm "${DSYM}.zip" 
/usr/bin/zip -r "${DSYM}.zip" "${DSYM}" 

echo "Created .dSYM for ${PRODUCT_NAME}" 

echo "*** Uploading ${PRODUCT_NAME} to TestFlight ***" 
/usr/bin/curl "http://testflightapp.com/api/builds.json" \ 
-F [email protected]"${IPA}" \ 
-F [email protected]"${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!" 

私が費やしたすべての時間が、共同体をまとめてより多くのものを保存することを願っています!ここで

はリンクです:ここではhttp://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/

+0

私はこの記事を「スタックオーバーフロースタイル」のポストにすることについて、作者に話しました。彼に編集を行う機会を与えるために、フラグを立てたり、しばらくの間、他の行動をとっておいてください。 – Pops

+0

再ありがとうございました。私はリビジョンが適切であり、皆に役立つことを願っています! – mattv123

答えて

11

はTestFlightに構築するの自動展開とサードパーティのgitリポジトリに接続されているXcodeのボットを作成する方法を概説し、ポストへのリンク、次のとおりです。

http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/

希望すると助かります!ご意見やご意見をお聞かせください。

+2

これはXcode 6では更新されていません。 –

+0

リンクが無効です – RaffAl

関連する問題