如何将“运行脚本”构建阶段限制在我的发布配置中?

162

我有一个Shell脚本,我想在我的目标构建阶段的最后运行它。但是,我希望只有在使用release配置构建时才运行此脚本。如何实现这一点?谢谢!

2个回答

339
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

该脚本会在每个配置结束时运行,但在此情况下除非配置为Release(假设它所执行的所有操作都包含在测试块内),否则它不会执行任何操作。


1
我刚刚发现它不能处理多个单词的配置名称。它可以处理“Release”,但无法处理“Internal Beta”。 - Hedin
5
@Hedin - 这只是bash语法;如果您有多词变量,请将变量用引号括起来。所以${CONFIGURATION}就变成了"${CONFIGURATION}"。我会更新答案以包括这一点。 - Jason Coco
18
我有“调试”、“发布(用于 Instruments)”、“Ad Hoc”和“App Store”配置文件(带有不同的代码签名),因此我更改了if [ "${CONFIGURATION}" != "Debug" ]; then... - Nicolas Miari
2
对于if条件,我想使用存储在.pch文件中的#define TRUE/FALSE。我该如何在脚本代码中引用它? - newton_guima
2
这个同样的事情可以通过预处理器标志来完成吗? - Justin Vallely
显示剩余4条评论

22

最简单的方法是勾选"仅在安装时运行脚本"复选框。


将Xcode运行脚本构建阶段的脚本仅在安装选项时运行。 - darkheartfelt
10
在真机上进行调试安装(从Xcode构建和运行)不算是“安装”。该运行脚本仅在归档时运行(已使用Xcode 9进行测试)。 - darkheartfelt
7
如果你想在“Release”配置下构建应用程序而不进行存档,是行不通的。问题明确涉及“Release”配置。 - Legonaftik
2
好的评论,我认为寻找这个问题答案的人可能会发现其中一个有用。 - Justin Meiners

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接