我正在努力解决一个神秘的谜题,我非常感谢你的解释,因为这将有助于我理解这些工具,并对我的工作充满信心。
在启动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是隐含的。任何人都可以确认和/或扩展这些吗?
答案 0 :(得分:1)
当在i386上构建xcode时,它会更改这些变量,您可以在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