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

25,067

Solution 1

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

Solution 2

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.

Share:
25,067
Jordan Smith
Author by

Jordan Smith

Blog: jordansmith.io Founder: classtimetable.app

Updated on December 09, 2020

Comments

  • Jordan Smith
    Jordan Smith over 3 years

    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.

  • Jordan Smith
    Jordan Smith almost 13 years
    Thanks! I didn't realize the 3G was armv6.
  • Jordan Smith
    Jordan Smith almost 13 years
    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.
  • thndrkiss
    thndrkiss about 12 years
    Henrik, is there an apple documentation which talks about this ?
  • Josh Brown
    Josh Brown almost 12 years
    By iPhone 2G, I assume you mean the original iPhone - is that right?
  • Matt
    Matt almost 12 years
    Yes the original iPhone is often referred to as the iPhone 2G.
  • raidfive
    raidfive almost 12 years
    Toss ARMv7s = iPhone 5 into the mix.
  • DOOManiac
    DOOManiac over 11 years
    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)
  • LightningStryk
    LightningStryk about 11 years
    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.
  • Tomas Andrle
    Tomas Andrle almost 11 years
    You can add ARM64 = iPhone 5s
  • androniennn
    androniennn almost 11 years
    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.
  • Henrik P. Hessel
    Henrik P. Hessel over 10 years
    @androniennn arm7s is backward compatible with armv7, so you're armv7 compiled binary will work on future devices, too.
  • Hari Ganesan
    Hari Ganesan over 10 years
    This is a great reference. Does Apple not have this lying around in their documentation somewhere?