首页 > 解决方案 > Xcode 10 构建阶段排序

问题描述

Xcode 的现代构建系统使用什么逻辑来对构建阶段进行排序或并行化?我意识到可以定义输入/输出文件来对相互依赖的构建阶段进行排序,但这是唯一的考虑因素吗?

我从事的一些更复杂的项目有多达 10 个运行脚本构建阶段。虽然我想从一些可以并行运行的事实中受益,但我们之前利用遗留构建系统对自上而下排序的尊重来确保事情按顺序发生。是否有任何简单的方法来确保不依赖输入/输出文件的排序?

标签: xcodexcode10

解决方案


简而言之,没有什么好办法。

我最终做了几件事来降低复杂性:

  1. 将运行脚本构建阶段合并为两个:预编译、后编译
  2. 利用 Python 中的多处理按顺序运行脚本组(构建在内部工具之上)

我仍然定义在任一阶段生成的“输出文件”——例如,以确保脚本生成(或检索)的文件可能被复制到产品包中。它减少了开销,并缩短了构建时间。我仍然认为 Apple 需要实施一种改进的机制来对构建运行脚本阶段进行排序。


推荐阅读