xcode4:可靠地检测项目/工作区的DerivedData目录

noa*_*mtm 5 xcode build ios

Xcode 4构建了所有内容$HOME/Library/Developer/Xcode/DerivedData/$PROJECT-$UUID,其中$UUID是一个看似随机的字符串(它不是随机的,它看起来是随机的).

如何可靠地检测上述$PROJECT-$UUID部分?我已经看到了一个脚本(https://gist.github.com/949831),假设它是DerivedData中最后一个修改过的目录而猜测 - 但如果我的CI机器并行构建了一些项目,那就不是这样了.

noa*_*mtm 7

没有人回答,所以我一直在寻找想法,直到找到满足我需求的下面的想法.它可以进一步修改,以更安全.

  1. 在Xcode中,向目标添加运行脚本构建阶段(主目标,如果为同一项目构建一些).
  2. 在脚本中,输入以下行:

ln -sf "$BUILD_DIR" BuildDir

现在,在构建目标时,将在项目目录中创建项目的DerivedData目录的符号链接.如果需要,您还可以/而不是创建BuildDir作为内容为$ BUILD_DIR的文件:

echo "$BUILD_DIR" > BuildDir

然后在脚本中使用$(cat BuildDir)它来检索它.