简而言之,我:买了一个 mac mini 并用 OS X Server 设置它,连接我的 git hub 存储库,创建一个机器人,它将存档并上传到提交时的测试飞行 api(只是为了测试)。
我可以通过使用后操作存档脚本实际创建存档,但我无法将其上传到试飞。我的问题在于时间安排,而我没有掌握这个过程。
我使用了在 SO 和 Google 中找到的许多脚本,但它们似乎都不是 Xcode 6 和 Server 4 的最新版本。我必须更改一些路径才能使其正常工作。
基本上,当我想将它上传到试飞时,我无法获得通往新 IPA 的路径。在我的脚本完成运行之前,该路径似乎不存在。我认为这是唯一的原因是因为在集成日志中,它显示脚本已完成并且无法上传到测试飞行,但是在日志的最后它会打印:
结果在'/var/folders/5t/5vbf87x514l3ql2mpfqthgt8000086/T/C437286E-F5F4-4AF7-8F74-58312D095B42-87064-00004C27156D38DE/ServerTest.ipa'
将导出的产品移动到 '/Library/Developer/XcodeServer/Integrations/Integration-9279f091e32c0f0299d526e76e1c6b27/ServerTest Bot.ipa' ** 导出成功 **
所以我知道如何获得那条路径,但在我已经需要它之前,这条路径似乎并不存在。
有什么想法吗?
更新:也尝试使用此脚本,完全相同的问题 在应用程序归档中是否有任何自动 Testflight 上传脚本?
TEAM_TOKEN="XXX"
DISTRIBUTION_LISTS="XXX"
PROVISIONING_PROFILE="/Library/Developer/XcodeServer/ProvisioningProfiles/XXX.mobileprovision"
SIGNING_IDENTITY="iPhone Distribution: XXX"
# DO NOT EDIT BELOW HERE!
########################################
DSYM="/tmp/Archive.xcarchive/dSYMs/${PRODUCT_NAME}.app.dSYM"
#IPA="/tmp/${PRODUCT_NAME}.ipa"
IPA="${XCS_OUTPUT_DIR}/${PRODUCT_NAME} Bot.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/"
/bin/cp -Rp "${XCS_OUTPUT_DIR}/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!"