我有一个第三方库(ZBar)在我构建项目时抱怨armv7 arch(在终端中,使用xcodebuild),我必须在构建设置中将有效架构设置为armv6(仅)。 / p>
问题:设置为armv6的应用程序是否会在iPhone 3GS后期设备上运行?
答案 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)。现在所有这些设备都应该被替换,如果不是,那就不是我们的错。