新的iOS 6架构错误:文件是通用的(3个片段),但不包含arm7vs片段。

11

我有一个设备,它是在cordova 1.8.1和xcode 4.4中设计的。我希望能够更新它,使其能够在iPhone 5和iOS 6上运行。然而,即使我只是尝试在xocde 4.5中调试运行应用程序,我也会收到以下错误:

file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/Shared/Cordova/Frameworks/Cordova.Framework/Cordova for architecture armv7s. 

我已经谷歌过了并尝试将项目设置为目标arm7vs,但它没有起作用。有人能告诉我是什么导致了这个错误吗?

我需要更新Cordova / PhoneGap版本吗?

1个回答

41

iPhone 5的SoC有一个新架构:armv7s。当您切换到Xcode 4.5时,您项目的“有效架构”设置可能已更新,以包括armv7s。问题是您的库似乎还不支持它(它们没有为armv7s构建)。

您有三个选项来解决此问题:

  • 从项目(目标)“Build Settings” /“Valid Architectures”中删除armv7s: enter image description here

  • 将“Build Active Architecture Only”设置为YES:
    enter image description here

  • 更新静态库(如果它们有新版本并支持armv7s)

编辑: 对于那些找不到“Build Active Architecture Only”选项的人,请确保在Build Settings下“All”筛选按钮处于活动状态:

enter image description here


1
如果我从项目中删除armv7s,它在iPhone5 / iOS6上就无法工作了,对吗? - Bohdi
1
它会!iPhone 3GS、4、4S和5以及所有iPad都支持普通的armv7。armv7s具有一些新功能/优化(与armv7构建相比,您可能在iPhone 5上获得更好的性能),但这并不是强制性的。 - Imre Kelényi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接