iOS:iPhone 3GS或更年轻的设备是否需要armv7?

时间:2012-09-26 11:30:24

标签: ios xcode architecture armv7 armv6

我有一个第三方库(ZBar)在我构建项目时抱怨armv7 arch(在终端中,使用xcodebuild),我必须在构建设置中将有效架构设置为armv6(仅)。 / p>

问题:设置为armv6的应用程序是否会在iPhone 3GS后期设备上运行?

1 个答案:

答案 0 :(得分:8)

是的,ARMv6代码将在ARMv7设备上运行,但不是相反。您可以通过将长时间未更新的应用程序下载到全新的iPhone 5上来测试,并且它应该可以正常运行(而不是视网膜优化)。

这是因为这两个指令集是向后兼容的,但不能向前兼容。但是,ARMv6现在并不是一个大问题,因为Xcode 4.5无法编译ARMv6代码。

请注意,iPhone 3GS实际上是第一个使用ARMv7的iOS设备列表,可以观察到它是最早可以运行iOS 6的设备(需要ARMv7,唯一的例外是第一代) iPad),只要你的目标是iOS 4.3+,你根本不需要支持ARMv6。

看起来只有4个ARMv6设备是(iPhone 2G,iPhone 3G,iPod,iPod 2G)。现在所有这些设备都应该被替换,如果不是,那就不是我们的错。