Xcode运行脚本构建阶段“仅在安装时运行”选项

120

Xcode 的 Run script Build Phase 中有一个选项“仅在安装时运行脚本”,但我找不到相关的文档说明。它是用来做什么的呢?

2个回答

180

勾选仅在安装时运行脚本后,脚本只会在生成产品归档文件时运行。


15
在构建/安装到设备时不适用吗?也就是说,使用CMD-B将代码构建并运行到已连接的物理设备(而非模拟器)上。这样做是否不属于此开关选项下的“安装”操作? - Olie
9
在真实设备上进行调试安装(从Xcode构建和运行)并不算作“安装”。该运行脚本仅在归档时运行(已在Xcode 9中测试)。 - seeppp
1
实际上这只是部分正确的。它取决于DEPLOYMENT_PROCESSING设置。我是基于在Xcode 10上运行此操作得出的结论。看起来当你进行归档时,DEPLOYMENT_PROCESSING被设置为YES并覆盖了配置的设置。我已经通过构建并查看输出中的设置来确认了这一点,因为我已经将“在构建日志中显示环境变量”设置为打开状态。 - Mobile Ben
从 @Ericg 的标志是 DEPLOYMENT_POSTPROCESSING。在查看 Xcode 14 标志时,确认了这是使用的标志。 - undefined

21
在《Xcode构建系统指南(Xcode 3.2.x)》中提到:

仅在安装时运行脚本。仅在安装构建期间运行脚本,也就是在使用xcodebuild的安装选项或者构建设置Deployment Location(DEPLOYMENT_LOCATION)和Deployment Postprocessing(DEPLOYMENT_POSTPROCESSING)打开时。


当你需要或想要...时,我建议阅读有关DEPLOYMENT_LOCATION、DEPLOYMENT_POSTPROCESSING和TARGET_BUILD_DIR的文档。 - ericg
1
阅读它,但人们在什么情况下使用它们? - Boon
18
这是翻译内容:关于何时使用这个标志的问题:我在脚本中使用这个标志来递增构建编号,以便只在我归档发送给测试人员的版本上发生(而不是每次运行应用程序都递增)。 - Wayne
2
或者在将符号文件上传到Firebase或Crashlytics时,不需要在每个单独的调试构建中上传。 - seeppp
实际上,Fabric 告诉我们每次构建都应该上传符号文件。有更好的方法来配置 dSYM 的上传。https://support.crashlytics.com/knowledgebase/articles/118559-can-i-make-the-dsym-uploading-only-on-release-buil - Nike Kov

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