我有一个简单的脚本,它在 Post-actions 下的 XCode 方案中运行,如下所示:
cp -fr ${BUILT_PRODUCTS_DIR}/MyApp.app /tmp/MyApp.app
奇怪的是,当我通过这个命令行运行命令行构建时:
/usr/bin/xcodebuild -workspace MyWorkspace -scheme MyScheme -configuration Release clean build
${BUILT_PRODUCTS_DIR} 变量正在转换为调试目录而不是发布目录,我收到此错误:
cp: /Users/me/Library/Developer/Xcode/DerivedData/MyProject-afslklkwadvqqggjrlcuycyeyxfv/Build/Products/Debug/MyApp.app: No such file or directory
更奇怪的是,在环境变量列表中,它指向了正确的发布位置:
setenv BUILT_PRODUCTS_DIR /Users/me/Library/Developer/Xcode/DerivedData/MyProject-afslklkwadvqqggjrlcuycyeyxfv/Build/Products/Release
这似乎是一个 XCode 错误,我能想到的唯一解决方法是硬编码“发布”目录,这是一个非常糟糕的主意。
有谁知道发生了什么?
更新:
我找到了一种解决方法,如果我将方案中的运行构建配置更改为“发布”,它会将环境变量修复为指向发布位置。
但是我不知道为什么 BUILT_PRODUCTS_DIR 应该与 Run 配置相关,所以我愿意接受其他方法来解决这个问题。