我有一个包含许多目标的Xcode项目。其中六个是使用Build Phases下的Run Scripts构建最终发布产品(静态库,框架)的聚合。我可以单独制作它们,但是我找不到任何方法可以点击一个按钮"建立所有这些。
首先我尝试从命令行使用-alltargets,如下所示:
xcodebuild -project MyProject.xcodeproj -alltargets
由此我的测试目标出现错误,声称它们不是为测试而构建的。我不知道这意味着什么,因为他们通常会测试"正确。尝试这种方式时有些不同。但从技术上讲,它包括我不感兴趣的目标。如果有效,我不会介意。
接下来,我尝试制作一个聚合体,其中包含一个单独构建每个聚合目标的运行脚本,如下所示:
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
从Xcode的角度来看,它没有任何错误,但是有些聚合版本没有正确构建。不知何故,单个聚合中的运行脚本受到顶层聚合的影响,我想。
然后我尝试制作一个新的" RELEASE_PRODUCTS"在构建部分中列出了六个聚合的方案。有了这个,我得到了这样的错误:
还有其他一些模糊的错误,关于构建产品未被发现的地方。
接下来,我创建了一个完全在Xcode之外运行的脚本,如下所示:
#!/bin/bash
# Builds all release products
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
这似乎是唯一可行的。但我希望我可以从Xcode内部开始工作,最好是我可以从命令行点击,如果我愿意,因为那时我不必离开IDE,它可以报告成功或失败
答案 0 :(得分:0)
你可以制作一个取决于其他六个的虚拟目标。在Build Phases选项卡中使用Target Dependencies
答案 1 :(得分:0)
灵感by sansumbrella's answer in another forum。
在您的项目中创建一个新目标(由于我的项目基于CLI,所以我选择使用CLI工具)。
根据 sansumbrella ,您可以创建一个应用程序并删除它的plist。我的方法不依赖任何特殊的(或不存在的)抵押人。
为目标指定一个名称,例如 ALL ,满足其余字段的要求,然后按“完成”。
单击新目标的Build Phases
链接,然后:
main.c
。+
或将目标拖到该空间中来添加所有其他目标。现在,当您将此目标选择为活动模式时,您可以构建并清理整个项目。