在 Xcode 方案构建目标中构建排序



为了为我的程序构建安装程序,我添加了一个"安装程序"Xcode项目/目标,它将所有需要的二进制文件复制到临时位置,然后运行必要的逻辑来构建软件包。

我遇到的问题是我想映射这个安装程序项目直接依赖于其他几个项目,以便在每次尝试构建安装程序项目时构建它们(如果需要)。

我将所有目标添加到安装程序的构建目标列表(在架构中),它们的排序方式如下:

Project A
Project B
Project C
Installer (self)

但是,当我进行干净的构建时,我看到如下所示的构建顺序(在构建日志中):

Project C
Installer
Project A
Project B

我需要强制某个构建顺序,否则安装程序将无法使用这些文件。Xcode 允许您更改 UI 中这些项目的顺序,但顺序似乎没有任何作用。有没有办法强制依赖的构建顺序?

Xcode 允许您更改 UI 中这些项目的顺序,但顺序 似乎什么也没做。

就我而言,当在方案"构建"选项卡中勾选"并行化构建"时,就会发生这种情况。

禁用该复选框后,Xcode 始终遵循我为目标选择的顺序。

仔细想想是有道理的:启用"并行构建"后,所有没有依赖约束的目标都将并行构建,这可能会导致它们的无序完成。

另一方面,如果您希望严格遵守它们的顺序,那么......这与并行构建完全相反,因此您应该禁用该选项。

使目标 A、B 和 C 成为安装程序目标的目标依赖项,这将确保在安装程序之前生成 A、B 和 C。从项目导航器中选择项目文件以打开项目编辑器。从目标列表中选择安装程序目标。单击编辑器顶部的"构建阶段"按钮以显示目标的构建阶段。单击"目标依赖项"构建阶段旁边的显示三角形。单击 + 按钮添加依赖项。

添加目标依赖项时,将在安装程序之前生成目标 A、B 和 C。如果需要按特定顺序生成 A、B 和 C,则必须添加更多目标依赖项。

在 Xcode 13 中,现在强烈建议不要使用手动订单,并会向您发出警告。

最新更新