When I tried to Validate my (iPad-only) app I was trying to submit to the app store, I got three errors:
1. iPad: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv7.
Actually, I had armv7 and armv7s in all of my architecture settings, and, yes, I did have "Build Active Architecture Only" set to "No".
What fixed it for me was to manually remove armv7s from this list, leaving just armv7. Only then did this error disappear.
So much for "at least one of the architectures must be armv7"
2. Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate.
Huh ?
Previously, I had been building this iPad app using an Enterprise License for Ad-Hoc distribution within our company. Now, I was trying to get it to build using a Developer License, so I could deploy it to the App Store.
To fix this issue, I needed to:
click on my project in the lefthand window
select the project name (under Targets) in the middle window
select the Build Settings tab
just below the row tabs, select the "Basic" and "Combined" options.
Now, under Code-Signing Identity, I needed to make sure I'd chosen a
Code-Signing relating to my Apple Developer account, rather than the
Enterprise account, and which was specifically for that project.
3. Unable to extract entitlements from application: (null)
Huh ?!
Remember the good old days when an application just had a name ? With XCode, your app has a bundle name, Product Name, Executable Name and a Bundle Display Name.
Several StackOverflow users have noted this, and pointed you in the direction of Apple's documentation, to explain the differences... but good luck with that.
For me, to fix this issue, I simply needed to make sure the Executable Name and Bundle Name (in the *-Info.plist file) were identical, and also matched the Product Name.
Frustratingly, the Product Name is hidden away under the tab mentioned in Part 2 above, i.e. select the Build Settings tab, then select "Basic" and "Combined" in the header bar.
I hope this is useful to other developers. This was all done using XCode 4.6.3, so will no doubt be out of date next month when iOS 7 and XCode 5 comes along. By then, your app will probably also need a Nickname and MiddleName. Who knows?
Mike
www.MikesKnowledgeBase.com