iPhone/iPod Touch: application executable is missing a required architecture

24,012

Solution 1

For some reason the default architecture settings with xCode 4.2 is only for armv7. Go to Target -> Build Settings -> Architectures -> Release on value dropdown pick "Other...",

remove $(ARCHS_STANDARD_32_BIT), and add 2 rows first with "armv6" and second "armv7"
Done

Solution 2

For Xcode 4.5, set the deployment target to at least iOS 4.3 and that will resolve it. Earlier versions of iOS are almost extinct.

Solution 3

Not the optimal solution, but I found that if I changed the Deployment Target to 4.3 (it was 4.0 before) it gets rid of the error.

Solution 4

For XCode 4.5

Had to set "Deployment Target" to 4.3, "Architectures" to armv6 armv7 armv7s as described above, AND "Build Active Architectures Only" to No.

This on a project that worked fine for several month before upgrading to XCode 4.5.

Solution 5

Note: Set the iOS Deployment Target to 4.3 or later in your project if you wish to drop ARM v6 support for your application. An ARM v7 processor is required to run versions of iOS later than 4.2.1.

Share:
24,012
Doz
Author by

Doz

Updated on August 14, 2020

Comments

  • Doz
    Doz almost 4 years

    I have an issue with xCode 4.2. I am getting this error when building:

    2011-06-18 13:35:49.839 Validation[4110:607] *** Warning: Defaulting to the standard codesign tool
    warning: iPhone/iPod Touch: application executable is missing a required architecture.  At least one of the following architecture(s) must be present: armv6 (-19033)
    Unable to validate your application. - (null)
    

    I had a look at my project settings, and it has :

    architectures: Standard (arm7) - ${ARCHS_STANDARD_32_BIT)
    Build active architecture only : NO
    

    Not sure what

  • Simeon G
    Simeon G over 12 years
    Awesome... this problem was killing me. It was actually preventing my app from deploying on an iPhone 3G (iOS 4.2 for example). Made this change and now it totally works! Thanks!
  • brack
    brack over 12 years
    Note: in some cases, deleting the old setting does not work. Simply adding "armv6" should do the trick, the end result being displayed for Architecture: "armv6 $(ARCHS_STANDARD_32_BIT)"
  • f0rz
    f0rz about 12 years
    easy explained. Thank u for time saving
  • AVEbrahimi
    AVEbrahimi almost 12 years
    Thank you, after a couple of days now I can submit app!
  • Kyle Clegg
    Kyle Clegg over 11 years
    I think that limits your app to iOS version 4.3 and above, btw. Not that it should be that big of a deal anymore. Just FYI.
  • jsherk
    jsherk over 11 years
    armv7 devices can only run iOS 4.3 and above which is one reason this works, however it will not run on older devices with an armv6 processor that have been updated to iOS 4.3 and above. If you dont want to support the older devices then it does not matter. If you do want to support the older devices you need follow Barak's solution above.
  • Brian
    Brian over 11 years
    This was just what I needed! Thank you.
  • Gerry
    Gerry over 11 years
    Thanks to all. Jumping through the hoops the right way to release an iphone app is crazy. Get it work with the bigger screen, then rotate properly again, then get the app loader to load it with minimal hints. I think the IOS 4.3 change was the charm.
  • DevCompany
    DevCompany almost 11 years
    This also worked for me. I had mine set to 4.0 and with SDK 6.1..it needs minimum 4.3....THANK YOU!
  • Andrew
    Andrew over 10 years
    Tried this change, had no effect. Had to change deployment target to 4.3 (was 3.2) as in SK9 answer, which worked. Shame, because now old iPod Touch won't be supported.