Jak wdrożyć automatyczne Kompilacje do TestFlight z bota Xcode?

Spędziłem sporo czasu formatując wspomniany blog za pomocą kodu, zrzutów ekranu itp. to zbyt wiele wysiłku, aby powielać tutaj na Stack Overflow. To powiedziawszy, pomyślałem, że społeczność będzie potrzebowała pomocy na tej arenie (przez długi czas zmagałem się z tym wszystkim), więc zamieściłem to pytanie i odpowiednią odpowiedź. Jeśli nadal uważasz, że intencja tego postu jest nikczemna, skomentuj jako takie, a ja go usunę!

Pytanie brzmi: jak skonfigurować mój fancy new Serwer Xcode z botami do ciągłej integracji i wysyłania ukończonych kompilacji do moich testerów za pośrednictwem lotu testowego? Dla mnie wydaje się to Świętym Graalem CI w świecie iOS, więc spędziłem dużo czasu, aby to rozgryźć.

Proces wymaga ręcznej pracy, która nie wydaje się być wykonywana poprawnie przez oprogramowanie serwera Xcode w Mavericks, przynajmniej w początkowym wydaniu. Zajęło mi to dużo czasu, a nawet trochę skryptów, aby to wszystko rozgryźć i sprawić, że będzie działać. wyniki.

Aby dodać wartość do tego pytania, zamieściłem skrypt pooperacyjny, który powinieneś uruchomić podczas procesu archiwizacji poniżej. Link do mojego bloga poniżej zawiera szczegóły krok po kroku, jeśli potrzebujesz więcej informacji.

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

Mam nadzieję, że cały czas spędzony na nim uratuje społeczność zbiorowo o wiele więcej ich!

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

Author: Yvette Colomb, 2013-10-24

1 answers

Oto link do posta, który opisuje jak stworzyć bota Xcode, podłączonego do zewnętrznego repozytorium git, z automatycznym wdrażaniem kompilacji do TestFlight:

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

Mam nadzieję, że to pomoże! Prosimy o komentarze lub opinie.

 11
Author: mattv123,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-24 01:06:38