Comment déployer des compilations automatisées pour tester flight à partir d'un Bot Xcode?

j'ai passé beaucoup de temps à formater le blog mentionné avec du code, des captures d'écran, etc. c'est trop d'effort pour dupliquer ici sur un Débordement de Pile. Cela dit, j'ai pensé que la communauté aurait besoin d'aide dans cette arène (j'ai lutté pendant longtemps pour comprendre tout cela), donc j'ai posté cette question et la réponse respective. Si vous pensez toujours que le but de ce post est infâme, s'il vous plaît commentaire en tant que tel et je vais le supprimer!

la question est: comment configurer mon envie d'un nouveau serveur Xcode avec Bots pour intégrer et envoyer en continu des compilations complètes à mes testeurs via un vol d'essai? Pour moi, cela ressemble au Saint Graal de CI dans le monde iOS, donc j'ai passé beaucoup de temps à le comprendre.

le processus implique un travail manuel qui ne semble tout simplement pas être fait correctement par le logiciel du serveur XCode dans Mavericks, au moins dans la version initiale. Il m'a fallu beaucoup de temps et même quelques scripts pour tout comprendre et de le faire fonctionner, et je suis heureux pour partager les résultats.

pour ajouter de la valeur à cette question, j'ai posté le script post-op que vous devez exécuter pendant le processus D'archivage ci-dessous. Le lien vers mon blog ci-dessous fournit des détails étape par étape si vous avez besoin de plus d'informations.

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

j'espère que tout le temps que j'ai passé sur il va sauver la communauté collectivement beaucoup plus de leurs!

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

22
demandé sur Yvette Colomb 2013-10-24 05:06:38

1 réponses

voici un lien vers un article qui explique comment créer un bot Xcode, connecté à un dépôt git tiers, avec déploiement automatisé de compilations pour tester Flight:

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

j'Espère que ça aide! Veuillez faire part de vos commentaires ou de vos commentaires.

11
répondu mattv123 2013-10-24 01:06:38