当他们的产品同名时,如何使 xcodebuild select 成为正确的目标?

How do I make xcodebuild select right target when their products have the same name?

我有一个制作 iOS 应用程序的项目,我们称它为 Foo。它 dependen/uses 另一个项目,让我们称之为制作框架的 Bar,Bar.framework。在我的 iOS 应用程序 Foo 的构建阶段,我在 'Embedded frameworks' 下添加了 Bar.framework。

这很好用。除非我尝试在命令行上构建它失败了。我构建:

xcodebuild DEPLOYMENT_LOCATION=YES DSTROOT=/tmp/Foo.dst -sdk iphonesimulator -arch x86_64 -workspace Foo.xcworkspace -scheme Foo build

失败的原因是我有两个目标 Bar-OSX 和 Bar-iOS,它们都创建了一个名为 Bar.framework 的框架。 xcodebuild 在构建时最终选择了 Bar-OSX 。我可以删除目标,然后编译将在选择 Bari-iOS 时工作。

我可能可以通过保持产品名称不同来解决这个问题,但我不希望使用该框架的代码仅仅因为它来自 iOS 或 [=30= 而导入具有不同名称的框架].有办法解决吗?

选择错误的框架似乎是由 xcodebuild 中的错误引起的。通过使用 xctool,这是一个替代品,选择并构建了正确的框架。