Ios 如何使xcode在依赖项之前运行脚本?

Ios 如何使xcode在依赖项之前运行脚本?,ios,xcode,build,Ios,Xcode,Build,情景: 我有TargetA,它是一个iOS应用程序。此应用程序使用由TargetB编译的静态库。 显然,TargetB是TargetA的依赖项,并且TargetB总是在TargetA之前构建。到目前为止还不错 现在,我想要一个脚本来运行TargetA,但是甚至在TargetB之前 我尝试的是: 添加“设置”聚合/外部构建目标,并使其成为TargetA的依赖项。它工作了一半:Xcode同时运行setup和TargetB,因此TargetB可能构建得太早了。还不够好 相同,但在方案中指定不并行构建。

情景:

我有
TargetA
,它是一个iOS应用程序。此应用程序使用由
TargetB
编译的静态库。 显然,
TargetB
TargetA
的依赖项,并且
TargetB
总是在
TargetA
之前构建。到目前为止还不错

现在,我想要一个脚本来运行
TargetA
,但是甚至在
TargetB
之前

我尝试的是:
  • 添加“设置”聚合/外部构建目标,并使其成为
    TargetA
    的依赖项。它工作了一半:Xcode同时运行
    setup
    TargetB
    ,因此
    TargetB
    可能构建得太早了。还不够好
  • 相同,但在方案中指定不并行构建。这是可行的,但却是一种浪费,因为还有其他目标可以并行构建
  • 在方案内部的
    预操作
    构建步骤中运行脚本。这是可行的,但似乎是错误的(为什么?该步骤的输出没有进入构建日志;所以也许我不打算这样使用它?)
  • 我不想做的事: 将脚本添加为
    TargetB
    的依赖项。这是可行的;然而,
    TargetB
    实际上来自另一个子项目,在构建它的上下文中,脚本的参数还不知道(主要是
    TargetA
    项目的根目录)

    我是否遗漏了什么,或者我必须满足于2或3以上


    编辑:在上面的选项2中,更改依赖项的顺序(在我的例子中,在
    Setup
    TargetB
    之间没有帮助——Xcode仍然可以任意选择顺序。

    在方案中运行脚本作为
    预操作
    构建步骤是实现所需的最佳方法。这种方法的一个常见用法是根据源代码管理调整项目的构建编号state()。不幸的是,就捕获脚本输出而言,您唯一能做的就是。该日志文件可能是您项目的一部分,因此从Xcode可以轻松查看。

    这对我帮助很大,请参阅此处的完整设置: