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

Zol*_*tók 1 architecture xcode armv7 armv6 ios

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

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

Ric*_*III 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).现在所有这些设备都应该被替换,如果不是,那就不是我们的错.