34

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

rid
  • 61,078
  • 31
  • 152
  • 193
Doz
  • 7,009
  • 12
  • 61
  • 69
  • use my answer i have give below may solve your problem....?I had this problem even after following the accepted answer and found the following to work: In your Info.plist, add an entry for Required Device Capabilities. This should be an array and will have two entries. Item 0 : armv6 Item 1 : armv7 It will look like this: Required device capabilities entry – Himanshu Agnihotri Jun 19 '12 at 17:07
  • @Himnanshu your solution did not work for me. Barak's did... – Ross Jul 24 '12 at 12:32
  • Check out this link: http://developer.apple.com/library/ios/#qa/qa1760/_index.html It worked for me. Larry –  Oct 16 '12 at 23:01

10 Answers10

75

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

Barak
  • 1,148
  • 7
  • 13
  • 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! – Simeon G Oct 07 '11 at 02:27
  • 1
    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)" – brack Oct 18 '11 at 22:33
  • easy explained. Thank u for time saving – f0rz Apr 18 '12 at 09:49
  • 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. – Andrew Sep 26 '13 at 18:37
38

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.

Ken
  • 30,811
  • 34
  • 116
  • 155
  • 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. – Gerry Sep 22 '12 at 00:11
  • This also worked for me. I had mine set to 4.0 and with SDK 6.1..it needs minimum 4.3....THANK YOU! – DevCompany Jul 08 '13 at 03:50
7

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.

adjwilli
  • 9,658
  • 4
  • 35
  • 29
  • Thank you, after a couple of days now I can submit app! – AVEbrahimi Jun 10 '12 at 01:47
  • 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. – Kyle Clegg Aug 20 '12 at 16:55
  • 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. – jsherk Aug 28 '12 at 19:48
6

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.

daniel
  • 61
  • 1
  • 1
1

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.

Anders R. Bystrup
  • 15,729
  • 10
  • 59
  • 55
FengYNing
  • 11
  • 2
0

My Answer may be solve your problem: I had this problem even after following the accepted answer and found the following to work:

In your Info.plist, add an entry for Required Device Capabilities. This should be an array and will have two entries.

Item 0 : armv6
Item 1 : armv7

It will look like this:

Required device capabilities entry

Himanshu Agnihotri
  • 2,360
  • 4
  • 23
  • 30
0

Had the same problem, tried everything mentioned here - but still got the error on validate - I tried armv6 and armv7 steps, tried to add that to info.plist and also tried regenerating the distribution certificate just in case.

Turns out the info.plist file must have ${EXECUTABLE_NAME} and ${PRODUCT_NAME} in the respective fields ALSO the Product name in the Build Settings for that scheme+Target SHOULD match the scheme name I made sure all the names matched exactly EXECUTABLE_NAME, PRODUCT_NAME, Product Name in Target, binary name in build settings and info plist, and the deployable binary name - made sure they matched the Target name itself

Once all the names matched and the architecture matched, it worked. Until then it kept giving me error on validation.

0

My previous answer was deleted by the moderator because I didn't comply with their rules. So, answering again.

I faced the same issue and wasted 2 days on it. In my case an upgrade to XCode caused it. I downgraded XCode to the previous version and it got fixed for me. If this is your issue then uninstall new version, reboot and then install old version again. That should do it for you.

I have also added some screenshots and info to my blog about this issue here: http://iostipsntricks.wordpress.com/2011/06/24/solved-application-executable-is-missing-a-required-architecture-at-least-one-of-the-following-architectures-must-be-present-armv6/

StackThis
  • 1,262
  • 1
  • 14
  • 23
0

Had absolutely the same problem with Xcode Version 4.2. and got also an other error:

There is no codesign:wrapper executable. Please reinstall the Xcode developer tools.

After downgrading the Xcode to an older version it fixed the problem.

joelschmid
  • 828
  • 1
  • 16
  • 32
0

Check this post, it is the right one with just adjust a setting in Xcode 4.2, just set "Build Active Architecture only" to NO:

iTunes Connect application is missing required architecture

Community
  • 1
  • 1
Ray
  • 16,025
  • 5
  • 31
  • 51