【发布时间】:2012-09-18 00:28:20
【问题描述】:
我有一个第三方库 (ZBar) 在我构建项目时抱怨 armv7 架构(在终端中,使用 xcodebuild),我必须将构建设置中的有效架构设置为 armv6(仅限)。
问题:设置为 armv6 的应用甚至可以在 iPhone 3GS 后的设备上运行吗?
【问题讨论】:
标签: ios xcode architecture armv7 armv6
我有一个第三方库 (ZBar) 在我构建项目时抱怨 armv7 架构(在终端中,使用 xcodebuild),我必须将构建设置中的有效架构设置为 armv6(仅限)。
问题:设置为 armv6 的应用甚至可以在 iPhone 3GS 后的设备上运行吗?
【问题讨论】:
标签: ios xcode architecture armv7 armv6
是的,ARMv6 代码将在 ARMv7 设备上运行,但反之则不行。您可以通过将长时间未更新的应用程序下载到全新的 iPhone 5 上来测试这一点,它应该可以正常运行(虽然没有经过视网膜优化)。
这是因为这两个指令集向后兼容,但不向前兼容。不过,ARMv6 现在已经不是什么大问题了,因为 Xcode 4.5 的限制是无法编译 ARMv6 代码。
请注意,iPhone 3GS 实际上是 iOS 设备列表中第一个使用 ARMv7 的设备,可以看出它是最早可以运行 iOS 6 的设备(需要 ARMv7,唯一的例外是第一代iPad),所以只要你的目标是 iOS 4.3+,你根本不需要支持 ARMv6。
看到 ARMv6 的唯一 4 个设备是(iPhone 2G、iPhone 3G、iPod、iPod 2G)。所有这些设备现在应该已经被替换了,如果没有,这不是我们的错。
【讨论】: