Xcode XCS_PRODUCT 路径中缺少 9 个机器人集成 ipa

Xcode 9 bot integration ipa missing at XCS_PRODUCT path

我正在与 Xcode 9 进行持续集成。我已成功设置服务器和机器人。

集成工作正常。

要求: 我需要 Post 脚本中的 ipa 路径才能上传到我的服务器。

问题: 我正在使用 XCS_PRODUCT 变量来获取 ipa 路径。

这是 ENV 来自 post 触发器的输出:

XCS_BOT_NAME=TestXCTest Bot
XCS=1
XCS_WARNING_CHANGE=0
XCS_SOURCE_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source
SHELL=/bin/bash
XCS_INTEGRATION_RESULT=succeeded
TMPDIR=/var/folders/wv/33mqmjhn525clw9zzx2c0xq80000gs/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.xHus0eJhWj/Render
XCS_TEST_FAILURE_COUNT=0
XCS_INTEGRATION_ID=51c2cf4d7b95c0c4a4f948f23001620e
XCS_BOT_TINY_ID=B705E6C
USER=xcodeserver
XCS_ARCHIVE=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/TestXCTest.xcarchive
XCS_TEST_FAILURE_CHANGE=0
XCS_INTEGRATION_TINY_ID=2C6684E
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.W6OUJYNErV/Listeners
__CF_USER_TEXT_ENCODING=0x1F9:0:0
XCS_PRIMARY_REPO_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source/TestXCTest
PATH=/Applications/Xcode_9.3.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
XCS_BOT_ID=b2642ba61e9ffe8554a9d17d1f0126d5
PWD=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source
XCS_XCODEBUILD_LOG=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/xcodebuild.log
XCS_PRODUCT=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/ExportedProduct/TestXCTest.ipa
XCS_PRIMARY_REPO_BRANCH=master
XPC_FLAGS=0x0
XCS_ERROR_COUNT=0
XCS_ANALYZER_WARNING_COUNT=0
XCS_TESTS_CHANGE=-2
XPC_SERVICE_NAME=0
XCS_ERROR_CHANGE=0
SHLVL=1
HOME=/Users/xcodeserver
XCS_DERIVED_DATA_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/DerivedData
XCS_ANALYZER_WARNING_CHANGE=0
LOGNAME=xcodeserver
XCS_WARNING_COUNT=0
XCS_TESTS_COUNT=0
XCS_OUTPUT_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e
XCS_INTEGRATION_NUMBER=13
_=/usr/bin/env

这里显示ipa在这个路径:

/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/ExportedProduct/TestXCTest.ipa

但是在 finder 中没有像 Integration-.... 这样的文件夹。

所以问题是如何获取 ipa 路径?

我已经检查了很多与此相关的问题,例如:

Xcode Bot: how to get .ipa path on a post trigger script?

但没有得到 Xcode 9.

的答案

发现问题

Xcode is deleting Integration folder after completion.

解决方案:

我在下面添加了 post 脚本来复制 ipa:

rm -r "/Users/xcodeserver/Desktop/ipa/*"
cp -R "${XCS_OUTPUT_DIR}/ExportedProduct/" "/Users/xcodeserver/Desktop/ipa/"

另一个提示,如果 $XCS_PRODUCT 为空,请确保在此之前的其他触发器没有失败。我的 pod 文件更新脚本需要更改,下游上传触发器仍在 运行 但它没有设置此 env 变量。