SOLVED: Application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6
The Problem :
I upgraded to a recent version of XCode, let us call it 4.x.x and when I submit my app to the appstore after making a release build, Application Loader slaps me in my face with this error “iPhone/iPod Touch: Application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6″
When I went to build settings for my project and saw the architecture settings, I could only see armV7. ArmV6 was completely missing and I couldn’t do anything to add armV6 back.
My 2 days of effort to solve this problem. Here goes :
- Tried every damn thing to resolve the architecture issue as suggested by these posts ( I have tried 10 more posts but lost the links to those :
- Installed the previous stable version of XCode, this completely fuc….ed! my XCode. I mean XCode wouldn’t even launch after this.
- Installed the latest version of XCode again, stuck with same problem
- Finally uninstalled latest version of XCode using this command : sudo /Developer/Library/uninstall-devtools –mode=all. Don’t forget to REBOOT !! I forgot to do that and had to pay the price with 2 more hours of wasted effort.
- Reinstalled old stable version after SUDO command and reboot in step#4. Things started to look better, but ended up with this new problem. Basically, my project’s name disappeared from the Dropdown next to the RUN and STOP buttons in the top-left corner. I could only see the libraries I was using.
- Finally solved that by clicking Product –>Manage Schemes and clicking “AutoGenerate Schemes”, which added my project name back in the list
I am a happy camper now 🙂 The whole point of me blogging about all this stuff is to share my experiences and help a fellow developer out there so that he/she doesn’t have to waste the same time and effort which I had to. Hope it helps someone!
an easier solution would be to stay with xcode 4.2 and 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
This would be an easy solution if it worked!! I’ve tried all sorts of combinations like the one shown above and still no where near working. No other hints of how to solve it either!!
I love you Barak… it work fine.
That worked for me. Thanks to you both!
Thanks Barak, your method save my days! Appreciates all you guys’s info. Cheers
didnt work for me
Barak’s solution does indeed work. However, this is Xcode 4.2.1 and we shouldn’t have to do this stuff by now, g’dammit! Does Apple actually test this stuff before they thrust it upon the developer community? I had been avoiding Xcode 4.X for reasons such as this (i.e. billing clients for 3 days lost due to wrangling with a link error) and was happy to stay with Xcode 3.6.2 until my customer unfortunately upgraded all his test devices en-masse to iOS5 without telling me. How was he to know that Apple won’t let you go back? So here I am, struggling with a half-baked IDE and spending most of my time google’ing for obscure error messages …
Thanks Again, Steve
I just recently had this issue, just changed “armv7” to “armv6 armv7”. Worked like a champ
Barak’s solution worked fine for me, thx a lot!
Im having the same problem. Can someone using Baraks solution please specify step by step how the F*&K to do it?