Soru Xcode Bot'tan otomatikleştirilmiş yapıları TestFlight'a nasıl dağıtabilirim?


Söz konusu blogu kod, ekran görüntüsü vb. İle biçimlendirmek için çok fazla zaman harcadım. Bu, Stack Overflow üzerinde çoğaltmak için çok fazla çaba harcadı. Bu topluluğun bu arenada yardım isteyeceğini düşündüğümü söyledim (uzun zamandır her şeyi anlamaya çalıştım), bu yüzden bu soruyu ve cevabını yayınladım. Eğer hala bu yazının amacının acımasız olduğunu düşünüyorsanız, lütfen yorum yapın ve onu sileceğim!

Soru şu: test uçuşları ile test ettiğim yapıları sürekli olarak entegre etmek ve göndermek için yeni Xcode sunucumu Bots ile nasıl yapılandırabilirim? Bana göre bu, iOS dünyasında CI'nin kutsal kârı gibi görünüyor, bu yüzden bunu anlamak için çok zaman harcadım.

Süreç, en azından ilk sürümde, Maverick'teki XCode sunucu yazılımı tarafından düzgün bir şekilde yapılmadığı görülen bazı manuel çalışmaları içeriyor. Bana çok zaman harcadı, hatta bazılarını anlamaya ve işe yaramaya yönelik bir betik oluşturdu ve sonuçları paylaştığım için mutluyum.

Bu soruya değer katmak adına, aşağıdaki Arşivleme işlemi sırasında çalıştırmanız gereken post-op komut dosyasını yayınladım. Aşağıdaki blogumun bağlantısı, daha fazla bilgiye ihtiyaç duyduğunuzda adım adım ayrıntıları sağlar.

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

Umarım geçirdiğim her zaman toplumu topluca daha çok onların kurtaracak!

Bağlantı burada: http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/


22
2017-10-24 01:06


Menşei


Bu yazara daha fazla "Yığın Taşma stili" gönderilmesiyle ilgili konuştum. Lütfen düzenlemeler yapma şansı vermek için işaretlemeyi veya bir süre başka işlemlerde bulunmayı sürdürün. - Pops
Tekrar eklediğiniz için teşekkürler. Umarım revizyonlar uygundur ve herkese yardımcı olur! - mattv123


Cevaplar:


Burada, bir 3. parti git deposuna bağlı bir Xcode botunun nasıl oluşturulacağını özetleyen bir gönderinin bağlantısı bulunuyor.

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

Umarım yardımcı olur! Lütfen yorumlarınız veya geri bildiriminizle görüşün.


11
2017-10-24 01:06



Bu Xcode 6 için güncellenmez. - Maciej Swic
Bağlantı öldü - RaffAl