【问题标题】:Xcode 10 build phase sequencingXcode 10 构建阶段排序
【发布时间】:2018-12-12 10:05:56
【问题描述】:

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

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

【问题讨论】:

  • 我看过 WWDC 构建系统的演讲 - 它没有涉及如何在不依赖 I/O 文件的情况下对运行脚本阶段进行排序。它也没有提到在编译阶段之后放置的运行脚本阶段似乎尊重它们应该在编译后隐式运行的概念。假设您想在构建结束时精简通用框架二进制文件,而不修改用户的工作空间。我在应用程序包中就地执行此操作。我想知道运行脚本阶段的输入文件是否可以引用将被复制到 App Bundle 中的文件。

标签: xcode xcode10


【解决方案1】:

简单地说,没有什么好办法。

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

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

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

【讨论】:

    猜你喜欢
    • 2019-02-23
    • 1970-01-01
    • 2013-11-15
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2019-05-15
    • 2015-02-07
    相关资源
    最近更新 更多