[英]Build all targets (or schemes) in Xcode project
我有一个包含许多目标的 Xcode 项目。 其中六个是使用构建阶段下的运行脚本构建最终发布产品(静态库、框架)的聚合体。 我可以单独构建它们,但是我找不到任何方法来点击“一个按钮”来构建它们。
首先,我尝试从命令行使用 -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,它可以报告成功或失败。
你可以制作一个依赖于其他六个的虚拟目标。 在构建阶段选项卡中使用目标依赖项
在您的项目中创建一个新目标(我选择使用 CLI 工具,因为我的项目是基于 CLI 的)。
根据sansumbrella ,您可以创建一个应用程序并删除它的 plist。 我的方法不依赖于任何特殊(或不存在)的 plist。
为您的目标命名,例如ALL ,满足其余字段,然后按“完成”。
单击新目标的Build Phases
链接,然后:
main.c
+
或将目标拖到此空间来添加所有其他目标。当您将此目标选为活动模式时,您现在可以构建和清理整个项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.