5

我正在尝试解决一个我非常感谢解释的神秘难题,因为这将帮助我理解这些工具并对我所做的事情充满信心。

在启动 xcodebuild 命令行来构建我的 iPhone 应用程序时,我遇到了这个难题。我发现它拒绝“-sdk iphonesimulator6.0”并显示以下消息:“没有要编译的架构(ARCHS = i386,VALID_ARCHS = armv7)。"

然后我看到我的 VALID_ARCHS 设置为 armv7,这似乎解释了为什么 xcodebuild 拒绝为模拟器构建(我让自己相信是英特尔)。但是我的 XCode IDE 究竟是如何绕过它并设法为模拟器构建的(它确实如此)?

将 VALID_ARCHS 更改为: VALID_ARCHS = "$(ARCHS_STANDARD_32_BIT)";(扩展为 armv7 和 armv7a)或 VALID_ARCHS = armv7 i386 似乎已经满足 xcodebuild 足以同意为模拟器构建。请注意,第一个案例仍然没有列出 i386!我必须得出结论,在某些情况下,i386 变得隐含。任何人都可以确认和/或扩展其中的任何内容吗?

4

1 回答 1

1

当 xcode 在 i386 上构建时,它会更改这些变量,您可以在 xcode 日志导航器中看到这一点...

这些是 xcode 操作的变量,以便允许在 i386 上运行

VALID_ARCHS=i386 ARCHS=i386

您可以通过以下方式调用 xcodebuild 命令来执行相同操作:

xcrun xcodebuild VALID_ARCHS=i386 ARCHS=i386 ONLY_ACTIVE_ARCH=NO -arch i386 -sdk iphonesimulator7.1 -configuration Debug
于 2014-07-07T08:50:10.950 回答