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

Posted

技术标签:

【中文标题】Xcode 运行脚本构建阶段“仅在安装时运行脚本”选项【英文标题】:Xcode Run script Build Phase "run script only when installing" option 【发布时间】:2011-05-06 14:57:10 【问题描述】:

Xcode 运行脚本构建阶段中有一个“仅在安装时运行脚本”选项,我无法找到这方面的文档。它有什么作用?

【问题讨论】:

【参考方案1】:

选中仅在安装时运行脚本,脚本仅在产品存档时运行。

【讨论】:

不是在设备上构建/安装时? (即:CMD-B 构建并运行到插入设备的物理设备(不是 sim)。这不算作此开关的“安装时”吗?) 在真实设备上进行调试安装(从 Xcode 构建和运行)不算作“安装”。运行脚本仅在归档时运行(使用 Xcode 9 测试)。 其实这只是部分正确。这取决于 DEPLOYMENT_PROCESSING 设置。我是基于在 Xcode 10 上运行它。看来,当您存档时,DEPLOYMENT_PROCESSING 设置为 YES 并覆盖配置的设置。我已通过构建并查看输出中的设置来确认这一点,因为我已将“在构建日志中显示环境变量”设置为开启。【参考方案2】:

在 Xcode Build System Guide (Xcode 3.2.x) 中,它说:

仅在安装时运行脚本。 仅在安装构建期间运行脚本,即使用 xcodebuild 的安装选项或构建设置部署位置 (DEPLOYMENT_LOCATION) 和部署后处理 (DEPLOYMENT_POSTPROCESSING) 时正在开启。

【讨论】:

当您需要/想要...?我建议阅读有关 DEPLOYMENT_LOCATION、DEPLOYMENT_POSTPROCESSING 和 TARGET_BUILD_DIR 的文档。 读一读,但人们在什么情况下使用它们? Re: 你什么时候想使用这个:我在脚本上使用这个标志来增加内部版本号,所以它只发生在我存档发送给 beta 测试人员的版本上(而不是每个我运行应用程序的时间) 或者在将符号文件上传到 firebase 或 crashlytics 时。无需在每个调试版本上上传。 实际上 Fabric 告诉每个构建都应该上传符号文件。有更好的方法来配置 dSYM 的上传。 support.crashlytics.com/knowledgebase/articles/…

以上是关于Xcode 运行脚本构建阶段“仅在安装时运行脚本”选项的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 中的运行脚本和构建阶段在哪里?

在 Xcode 构建阶段运行脚本中设置全局环境变量

在 FirebaseCrashlytics 的构建阶段运行脚本中上传符号时,Xcode 构建永远不会完成

你可以在 Xcode 的构建阶段更改运行脚本中的 info.plist 吗?

如何在 Xcode 中临时禁用运行脚本阶段

仅为 Xcode 4 中的“存档”构建运行脚本