9

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

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

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

Project A
Project B
Project C
Installer (self)

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

Project C
Installer
Project A
Project B

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

4

3 回答 3

10

Xcode 允许您更改 UI 中这些项目的顺序,但该顺序似乎没有任何作用。

就我而言,这是在方案“构建”选项卡中勾选“并行化构建”时发生的。

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

想一想是有道理的:当启用“Parallelize Build”时,所有没有依赖约束的target都会被并行构建,这可能会导致它们的乱序完成。

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

于 2016-10-21T13:49:32.117 回答
5

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

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

于 2012-04-23T19:31:29.397 回答
0

在 Xcode 13 中,现在强烈建议不要使用手动命令,并且会收到警告。

于 2021-09-13T15:45:00.730 回答