Do I need to add armv6 support when limiting apps to iOS 4.0+?
Asked Answered
G

2

66

At the moment I'm compiling for both armv6 and armv7. I've also set the target iOS version as 4.0.

Am I right in saying that all devices capable of running iOS 4.0+ are armv7, and thus I can stop compiling for armv6?

Not a big deal, but it means that my app's binary will be quite a bit smaller if I can.

Godsey answered 29/6, 2011 at 8:37 Comment(1)
You can not compile for armv6 as of Xcode 4.5Homocyclic
N
158

Sorry, but you aren't right. The iPhone 3G and iPod Touch 2G are able to run iOS 4 (barely) and they include a armv6 processor.

ARMv8 / ARM64 = iPhone 5s, iPad Air, Retina iPad Mini
ARMv7s = iPhone 5, iPhone 5c, iPad 4
ARMv7  = iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini  
ARMv6  = iPhone, iPhone 3G, iPod 1G/2G

iOS 4.3+ requires ARMv7. If your Deployment Target is 4.3, you can exclude armv6 support.

As of XCode 4.5 you cannot build for armv6 @Paul de Lange

Nebulose answered 29/6, 2011 at 8:41 Comment(11)
Thanks! I didn't realize the 3G was armv6.Godsey
Henrik, is there an apple documentation which talks about this ?Lipkin
By iPhone 2G, I assume you mean the original iPhone - is that right?Say
Yes the original iPhone is often referred to as the iPhone 2G.Anagoge
Toss ARMv7s = iPhone 5 into the mix.Ochoa
And now the iPad 4 supports ARMv7s too (but not the iPad Mini, which has the same CPU as the iPad 2). Wikipedia has a great table showing every iOS device and what ARM version they support: en.wikipedia.org/wiki/List_of_iOS_devices#Features (scroll halfway down or search for armv7)Isodimorphism
You can still support armv6 but you either need to have a previous version of xcode to build with, or you have to edit the project.pbxproj file directly.Claw
You can add ARM64 = iPhone 5sFuddle
I have a question please: If in my project I just have armv7 in "Valid Architectures", does that mean it'll not work with iphone5, iphone5c and iphone5s ? Users with that phone will not find it in AppStore? Thank you.Zipporah
@Zipporah arm7s is backward compatible with armv7, so you're armv7 compiled binary will work on future devices, too.Nebulose
This is a great reference. Does Apple not have this lying around in their documentation somewhere?Leban
R
23

You can safely drop armv6 support IF you set your deployment target to 4.3. This is because iOS 4 can be installed on armv6 devices only up to 4.2.

Romy answered 1/7, 2011 at 7:49 Comment(1)
Thanks, good to know! In this case I think that will be too limiting though. 95% of iOS devices are running iOS 4.0+ (apparently, don't quote me on that!) which is not too bad - but removing support for iPhone 3G would then be cutting out an even larger section of potential users.Godsey

© 2022 - 2024 — McMap. All rights reserved.