2

我有一个简单的脚本,它在 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 配置相关,所以我愿意接受其他方法来解决这个问题。

4

1 回答 1

1

我有完全相同的问题。我做了一个完整的清理,删除了DerivedData文件夹,然后重新启动了 Xcode - 它消失了......永远不会回来。


编辑:另一个想法

删除调试方案(或重命名)怎么样 - 那么如果由于某种原因它正在寻找调试它将无法找到它。可能无法解决问题,但可以指出原因。

于 2012-05-30T14:58:18.867 回答