Today I want to share my discoveries about compiling an iOS app under Xcode 4.2. With every major release of Xcode and iOS SDKs comes a few surprises. With Xcode 4.2 and iOS 5 SDK, the problem is that under Xcode 4.2, the new default build architecture is ARMv7 only. The ARMv6 is no longer part of the default settings. So, this may be a problem is your application needs to run on older devices. In my case, a few build and linking errors prevented a successful build of my app.
But, which device is using ARMv6 and which one is using ARMv7 ? Here is a list.
* ARMv6 is for original iPod, iPod touch second gen, original iPhone and iPhone 3G.
* ARMv7 is for iPhone 3GS and up, original iPad and up.
Also good to know, the original iPod supports only iOS 3.1.3. The iPhone 3G is capable of running up to iOS 4.2. So, plan accordingly. See this table for maximum supported iOS versions for each iOS device: http://en.wikipedia.org/wiki/List_of_iOS_devices
If you want to re-add the ARMv6 architecture to your build settings, follow these instructions: Warning iPhone apps should include an armv6 architecture even with build config set?
For example, if you want to support iOS 4.2 and still support iPod touch second generation or the iPhone 3G, you'll have to set architecture to ARMv6 and deployment target to 4.2. The original iPhone, the original iPod touch won't be supported. You should also set the UIRequiredDeviceCapabilities in the info.plist of your app.
原文地址:http://www.buildingiphoneapps.com/2011/10/xcode-42-ios-versions-and-armv6-armv7.html
本文分享了在使用Xcode 4.2和iOS 5 SDK时,遇到的问题是默认构建架构仅支持ARMv7,不包括ARMv6。详细解释了不同iOS设备支持的ARM架构类型,提供了如何将ARMv6架构重新添加到构建设置的方法,以便兼容旧设备。
94

被折叠的 条评论
为什么被折叠?



