gpt4 book ai didi

ios - 如何从 Xcode 机器人将自动构建部署到 TestFlight?

转载 作者:IT王子 更新时间:2023-10-29 08:01:32 29 4
gpt4 key购买 nike

我花了很多时间用代码、屏幕截图等格式化提到的博客。在 Stack Overflow 上复制这些内容太费力了。也就是说,我认为社区会在这个领域需要一些帮助(我花了很长时间才弄明白),所以我发布了这个问题和相应的答案。如果您仍然认为这篇文章的意图是邪恶的,请发表评论,我会删除它!

问题是:我如何使用机器人配置我新奇的 Xcode 服务器,以持续集成并通过试飞将完成的构建发送给我的测试人员?对我来说,这似乎是 iOS 世界中 CI 的 chalice ,所以我花了很多时间来弄清楚它。

该过程涉及一些手动工作,Mavericks 中的 XCode 服务器软件似乎无法正确完成这些工作,至少在初始版本中是这样。我花了很多时间甚至编写了一些脚本来解决所有问题并使其发挥作用,我很高兴与大家分享结果。

为了增加这个问题的值(value),我已经发布了您应该在下面的存档过程中运行的后期操作脚本。如果您需要更多信息,下面我的博客链接提供了详细的步骤。

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

我希望我花在这上面的所有时间能为社区集体节省更多他们的东西!

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

最佳答案

这是一篇文章的链接,该文章概述了如何创建 Xcode 机器人,连接到第 3 方 git 存储库,并将构建自动部署到 TestFlight:

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

希望对您有所帮助!请提出您的意见或反馈。

关于ios - 如何从 Xcode 机器人将自动构建部署到 TestFlight?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555107/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com