设想:
我有TargetA
,这是一个 iOS 应用程序。这个应用程序使用一个静态库,由TargetB
. 显然,TargetB
是 的依赖项TargetA
,并且TargetB
总是在 之前构建TargetA
。到现在为止还挺好。
现在,我希望TargetA
构建一个运行脚本,但即使在TargetB
.
我尝试了什么:
- 添加“设置”聚合/外部构建目标,并使其成为
TargetA
. 它成功了一半:Xcode 同时运行setup
,TargetB
因此TargetB
可能构建得太早。还不够好。 - 相同,但在方案中指定不要并行构建。这可行,但很浪费,因为还有其他可以并行构建的目标。
pre-action
在方案内的构建步骤中运行脚本。这可行,但似乎是错误的(为什么?该步骤的输出不会进入构建日志;所以也许我不打算以这种方式使用它?)。
我不想做的事情:
将脚本添加为TargetB
. 这会奏效;但是,TargetB
实际上来自另一个子项目,并且在构建它的上下文中,脚本的参数尚不清楚(主要是TargetA
项目的根目录)。
我错过了什么,还是我必须满足于上面的#2 或#3?
编辑:在上面的选项 #2 中,更改依赖关系的顺序(在我的情况下,介于两者之间Setup
并TargetB
没有帮助——Xcode 仍然任意选择顺序。