Xcode Bot:如何在post触发器脚本上获取.ipa路径?

时间:2016-02-24 15:00:13

标签: ios xcode continuous-integration bots xcode-bots

我使用机器人存档iOS应用程序,我需要获取.ipa产品路径才能将其发布到我们的分发系统中。

Bot设置:

enter image description here

使用脚本打印所有env变量,其中不包含ipa文件的路径。此外,一些变量指向不存在的目录,即:XCS_OUTPUT_DIR

这里是env变量输出:

XCS=1
XCS_ANALYZER_WARNING_CHANGE=-31
XCS_ANALYZER_WARNING_COUNT=0
XCS_ARCHIVE=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912/MyApp.xcarchive
XCS_BOT_ID=771867708dfac45bba10a1998c007d43
XCS_BOT_NAME='MyApp Distribution'
XCS_BOT_TINY_ID=DBB85BD
XCS_DERIVED_DATA_DIR=/Library/Developer/XcodeServer/Integrations/Caches/771867708dfac45bba10a1998c007d43/DerivedData
XCS_ERROR_CHANGE=-1
XCS_ERROR_COUNT=0
XCS_INTEGRATION_ID=771867708dfac45bba10a1998c118912
XCS_INTEGRATION_NUMBER=19
XCS_INTEGRATION_RESULT=warnings
XCS_INTEGRATION_TINY_ID=F7D4469
XCS_OUTPUT_DIR=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912
XCS_SOURCE_DIR=/Library/Developer/XcodeServer/Integrations/Caches/771867708dfac45bba10a1998c007d43/Source
XCS_TESTS_CHANGE=0
XCS_TESTS_COUNT=0
XCS_TEST_FAILURE_CHANGE=0
XCS_TEST_FAILURE_COUNT=0
XCS_WARNING_CHANGE=0
XCS_WARNING_COUNT=26
XCS_XCODEBUILD_LOG=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912/xcodebuild.log
XPC_FLAGS=0x0
XPC_SERVICE_NAME=com.apple.xcsbuildd

除此之外,我还能够确认在另一个文件夹(.ipa)中创建了<path to server>/IntegrationAssets/<integration id>/<integration number>/个文件,但是无法从env变量访问该路径。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

嗯,经过大量的研究和测试后,显然最新的Xcode(7.2)+ Server版本(5.0.15)中的机器人出现了问题,没有加载正确的环境变量。

我目前的解决方案是根据现有的env变量手动创建路径:

ARCHIVE_PATH="${XCS_ARCHIVE}"
ARCHIVE_NAME="${ARCHIVE_PATH##*/}"
IPA_NAME="${ARCHIVE_NAME%.*}.ipa"
IPA_PATH="${XCS_OUTPUT_DIR}/ExportedProduct/Apps/${IPA_NAME}"

我做的是基于: Continuous integration Xcode Server after trigger $XCS_PRODUCT not set

答案 1 :(得分:1)

只是一个小小的更新-在Xcode 9.4.1中至少正确设置了$ XCS_PRODUCT,因此您可以使用它,例如。 G。对于HockeyApp:

curl -F "status=2" -F "notify=1" -F "ipa=@${XCS_PRODUCT}" -H "X-HockeyAppToken: <token>" https://rink.hockeyapp.net/api/2/apps/upload