Xcode 10 个构建阶段排序
Xcode 10 build phase sequencing
Xcode 的现代构建系统使用什么逻辑来对构建阶段进行排序或并行化?我意识到可以定义 input/output 文件来对相互依赖的构建阶段进行排序,但这是唯一的考虑因素吗?
我从事的一些更复杂的项目有多达 10 个 运行 脚本构建阶段。虽然我想受益于一些可以 运行 并行的事实,但我们之前利用遗留构建系统对自上而下顺序的尊重来确保事情按顺序发生。是否有任何简单的方法来确保不依赖 input/output 文件的排序?
简单来说,没有什么好办法。
我最后做了几件事来降低复杂性:
- 将 运行-脚本构建阶段合并为两个:预编译,post-编译
- 利用 Python 中的多重处理按顺序 运行 组脚本(建立在内部工具之上)
我仍然定义在任一阶段生成的 "output files" - 例如确保脚本生成(或检索)的文件可以复制到产品包中。它减少了开销,并缩短了构建时间。我仍然认为 Apple 需要实施一种改进的机制来对构建 运行-脚本阶段进行排序。
Xcode 的现代构建系统使用什么逻辑来对构建阶段进行排序或并行化?我意识到可以定义 input/output 文件来对相互依赖的构建阶段进行排序,但这是唯一的考虑因素吗?
我从事的一些更复杂的项目有多达 10 个 运行 脚本构建阶段。虽然我想受益于一些可以 运行 并行的事实,但我们之前利用遗留构建系统对自上而下顺序的尊重来确保事情按顺序发生。是否有任何简单的方法来确保不依赖 input/output 文件的排序?
简单来说,没有什么好办法。
我最后做了几件事来降低复杂性:
- 将 运行-脚本构建阶段合并为两个:预编译,post-编译
- 利用 Python 中的多重处理按顺序 运行 组脚本(建立在内部工具之上)
我仍然定义在任一阶段生成的 "output files" - 例如确保脚本生成(或检索)的文件可以复制到产品包中。它减少了开销,并缩短了构建时间。我仍然认为 Apple 需要实施一种改进的机制来对构建 运行-脚本阶段进行排序。