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

noa*_*mtm 15 xcode build ios

场景:

我有TargetA,这是一个iOS应用程序.这个应用程序使用静态库,编译TargetB.显然,TargetB是一种依赖TargetA,并且TargetB始终是之前构建的TargetA.到现在为止还挺好.

现在,我希望运行一个脚本TargetA,但是甚至在此之前TargetB.

我尝试了什么:

  1. 添加"设置"聚合/外部构建目标,并使其成为依赖项TargetA.它的工作原理一半:Xcode的运行setup,并TargetB在同一时间,因此TargetB可能会过早地建造.还不够好.
  2. 同样,但在方案中指定不要并行构建.这是有效的,但是是浪费,因为还有其他目标可以并行构建.
  3. pre-action在方案内部的构建步骤中运行脚本.这可行,但似乎错了(为什么?从该步骤输出不会进入构建日志;所以也许我不打算以这种方式使用它?).

我不想做的事:

添加脚本作为依赖项TargetB.这会奏效; 然而,TargetB实际上来自另一个子项目,并且在构建它的上下文中,脚本的参数尚不清楚(主要TargetA是项目的根目录).

我错过了什么,还是我必须满足于#2或#3以上?

编辑:在上面的选项#2中,改变依赖的顺序(在我的情况下,之间SetupTargetB没有帮助 - Xcode仍然任意选择顺序.

kam*_*ath 9

将脚本作为pre-action构建内部步骤运行是实现所需内容的最佳方式.此方法的一个常见用途是根据源控制状态调整项目的构建编号(示例).至于捕获脚本输出,遗憾的是,您唯一能做的就是将脚本的stdout重定向到日志文件.该日志文件可能是您项目的一部分,因此从Xcode可以轻松查看.