问题
When I'm updating my first iOS app , I have 2 problems validating them,
*iPhone/iPod Touch:application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7
*Unable to extract entitlements from application: (null)
The Info.plist and build settings are all the defaults, the only thing I changed is the code signing Identity debug and release to my distribution provisioning profile, with the app ID and Bundle Id identically.
回答1:
This happened to me when i had my iphone 5 connected and built my archive. when i disconnected my iPhone and built my archive, it went through fine.
回答2:
Make sure 'Build Active Architectures' is set to No in BOTH the project and target settings too as well as the answers here "Warning: iPhone apps should include an armv6 architecture" even with build config set
回答3:
Now I resolved the problem, that was a very simple problem, it was with my executable name.
My target have an invalid character (+) then, when i upload my app it shows a problem (this bundle is invalid , the executable name can not contain this characters ....) then i changed the executable name from ${EXECUTABLE_NAME} to Chemistry, but the registered name of my app is Chemistry++.
And then the validate show others problems, which has been produced by changing this.
For resolving the problem I click on the project > target two times and changed the name, with no invalid characters ( * . , + {} () ) , all the problems disappeared.
Then it upload successfully.
(When I change the Info.plist executable name, for other name, it creates incompatibility, so don't to it and make it defaults ( ${EXECUTABLE_NAME} ), if you change, it creates other problems.)
Waiting for apple review!!!
回答4:
Confirmed. I just unplugged my iPhone 5s and re-archived the app. It worked flawlessly.
Welp, I'll never get those 40 minutes of my life back.
回答5:
I was connected with iPhone 5s and i got this error while validating my app
Setting "Build Active Architecture Only" to NO for targets and project resolve this issue.
回答6:
Make sure you set "Build Active Architecture Only" to NO for all your targets, libraries and frameworks.
回答7:
As soon as I unplugged my iPad the warning went away and was able to compile and upload to app store.
回答8:
Make sure there is no comma after armv7.
When I set the Architectures in the target's settings I wrote:
armv7, armv7s
It looked okay, but when I clicked on "other" to edit it, I realised it was set to:
armv7,
armv7s
Removing the comma (,) solved the issue.
回答9:
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
回答10:
Check target and project settings and set "Build Active Arch Only" to NO.
回答11:
it says missing a required architecture try this
- Go to Targets "your project"
- Go to Build Settings
- See if there is armv7 in the Architectures
- if not, then set Architectures to armv7
- clean and build.
If there is armv7 already, then something must be wrong.
hope it helps!
回答12:
I've got the same issue, and it got resolved..
It turned out, that i've different Bundle/Executable name than the project name.
Go to Project > double click Target
Rename it to the Bundle/Executable name, then build for Release/iOS Device
and the Application loader will accept your App.
回答13:
Damned... this was a typo for me. When setting the architectures, I put a comma at the end of the first entry (armv7)... so that it was considered as invalid and ignored. removing this extra character has freed any problem...
Never forget to check your typo!
来源:https://stackoverflow.com/questions/12487689/validating-app-application-is-missing-architecture-armv7