我已经在我的方案中添加了自定义脚本作为构建阶段的预操作(我需要在构建实际开始之前执行一些更改(包括Info.plist操作)-因此我不能使用构建阶段脚本,因为它们是在Info.plist复制到产品之后运行的)。一切都很好,除了这个脚本在我清理项目时也会被执行。我不需要它。
我检查了在不同情况下传递给脚本的环境和可能的参数,但在构建和清理场景中它们是相等的。
有没有办法在清理过程中禁用脚本执行?或者,可以在脚本中以某种方式检查它是在清理期间还是在构建期间启动的。
我使用的是Xcode 5。
提前谢谢你。
发布于 2013-11-29 18:24:05
您是否检查了$ACTION环境变量的值?它应该具有用于构建的" build“值和用于清理的"clean”值。
发布于 2022-01-26 11:19:06
查看clean和build操作之间env输出的差异,只会发现两个差异:
用于构建的RUN_CLANG_STATIC_ANALYZER=NO、用于清理的YES、用于构建的CLANG_STATIC_ANALYZER_MODE=shallow和用于清理的deep
我不确定这是否足以可靠地区分干净和构建,并且可能会根据其他构建设置而有所不同,但这可能比没有好?
在执行简单的echo $(env) > /tmp/env.log时,Xcode/shell会损坏换行符。我用来生成可用的diff可用输出的操作前fragment是:
: > /tmp/env.log # Truncate the logfile
ENV=$(env)
while IFS= read -r line; do
echo "$line" >> /tmp/env.log
done <<< "$ENV"(顺便说一句,这个问题提出8年后,这适用于Xcode 12.5.1。YMMV!)
https://stackoverflow.com/questions/19152267
复制相似问题