Come posso distribuire build automatiche su TestFlight da un Xcode Bot?

Ho trascorso una buona quantità di tempo formattando il blog menzionato con codice, schermate e così via, che è troppo difficile duplicare qui su Stack Overflow. Detto questo, ho pensato che la comunità avrebbe voluto un aiuto in questa arena (ho faticato per lungo tempo a capire tutto), quindi ho postato questa domanda e la rispettiva risposta. Se pensi ancora che l'intento di questo post sia nefasto, per favore commentalo e lo cancellerò!

La domanda è: come posso configurare il mio nuovo server Xcode con Bot per integrare e submit continuamente build completati ai miei tester tramite il volo di prova? Per me, questo sembra il Santo Graal di CI nel mondo iOS, quindi ho passato molto tempo a capirlo.

Il process include alcuni lavori manuali che non sembrano essere eseguiti correttamente dal software server XCode in Mavericks, alless nella versione iniziale. Mi ci è voluto un sacco di tempo e anche alcuni script per capire tutto e farlo funzionare, e sono felice di condividere i risultati.

Per aggiungere valore a questa domanda, ho pubblicato lo script post-op che dovresti eseguire durante il process di archiviazione di seguito. Il link al mio blog qui sotto fornisce i dettagli passo passo nel caso necessiti di maggiori informazioni.

#!/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 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!" 

Spero che tutto il tempo che ci dedicherò salverà la comunità collettivamente molto di più!

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

Solutions Collecting From Web of "Come posso distribuire build automatiche su TestFlight da un Xcode Bot?"