如何将"运行脚本"构建阶段限制为我的发布配置?

Ree*_*sen 129 macos xcode

我有一个shell脚本,我想在目标的构建阶段结束时运行.但是,我希望此脚本仅在使用发布配置构建时运行.如何才能做到这一点?谢谢!

Jas*_*oco 272

if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi
Run Code Online (Sandbox Code Playgroud)

该脚本将在每个配置结束时运行,但在这种情况下它不会执行任何操作,除非配置是Release(假设它所做的一切都包含在测试块中).

  • 我有'Debug','Release'(用于Instruments),'Ad Hoc'和'App Store'配置(使用不同的代码签名),所以我改为`if ["$ {CONFIGURATION}"!="Debug" ].然后...`. (12认同)
  • @Hedin - 那只是bash; 如果你有多字变量,你需要用引号括起变量.因此$ {CONFIGURATION}变为"$ {CONFIGURATION}".我会更新答案以包含它. (4认同)
  • 对于 if 条件,我想使用存储在 .pch 文件中的 #define TRUE/FALSE。我如何在脚本代码中引用它? (2认同)
  • 使用预处理器标志可以完成同样的事情吗? (2认同)

Men*_*nno 6

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

  • “在实际设备上进行调试安装(从Xcode构建并运行)不算作“安装”。运行脚本仅在存档时运行(已通过Xcode 9测试)。/sf/ask/413923961/#comment80890236_21917496 (3认同)
  • 如果您想在不存档的情况下在“发布”配置中构建您的应用程序,它将无法工作。问题明确与“发布”配置有关。 (3认同)