Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode方案生成目标中的生成顺序_Xcode_Installation_Dependencies_Project - Fatal编程技术网

Xcode方案生成目标中的生成顺序

Xcode方案生成目标中的生成顺序,xcode,installation,dependencies,project,Xcode,Installation,Dependencies,Project,为了为我的程序构建安装程序,我添加了一个“installer”Xcode项目/目标,它将所有需要的二进制文件复制到一个临时位置,然后运行必要的逻辑来构建包 我遇到的问题是,我想将这个安装程序项目直接映射到其他几个项目上,以便在每次尝试构建安装程序项目时构建它们(如果需要) 我将所有目标添加到安装程序的构建目标列表(在架构中),它们的顺序如下: Project A Project B Project C Installer (self) Project C Installer Project A

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

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

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

Project A
Project B
Project C
Installer (self)
Project C
Installer
Project A
Project B
但是,当我执行干净构建时,我会看到一个构建顺序(在构建日志中),如下所示:

Project A
Project B
Project C
Installer (self)
Project C
Installer
Project A
Project B

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

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

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

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

在我的例子中,当在Scheme“Build”选项卡中勾选“Parallelize Build”时,就会发生这种情况

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

仔细想想,这是有道理的:当启用“并行化构建”时,它们之间没有依赖约束的所有目标都将并行构建,这可能会导致它们的无序完成


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

我认为这也是正确的方法,但无法使目标依赖项正常工作。当我单击“+”按钮时,我会看到消息“没有可用的项目”,如果我尝试单击其中一个项目中的某个.app产品并将其拖动到该空间中,则不会发生任何情况。这可能是因为我创建的“安装程序”是一个空项目,但由于它本身没有代码(只是脚本),所以我不想从一个可执行的示例项目开始。如果您能告诉我如何将项目添加到“无可用项目”列表中,我将不胜感激!目标依赖项不跨项目。必须将A、B和C的目标添加到安装程序的项目中,才能使用目标依赖项。在你的例子中,有一个项目有4个目标比有4个单独的项目更好。IMO这种方法比上面的方法更干净。有点恼人的是,它被隐藏在方案中,而不是在依赖项列表中,显然可以更改顺序。谢谢你!在Xcode 11中,方案中的顺序似乎不再遵循了。即使未选中并行化构建。