My iOS app has the following build settings:
And yet when I attempt submit the app to the store, I receive this error:
If I add arm64 to UIRequiredDeviceCapabilities as the error suggests, I get the following message upon submission:
Why did the first archive only contain the arm64 slice?
My project does contain a couple other projects (RestKit and CocoaTouchBarcodes), but these projects' build settings look the same as mine. My project also links to the Google Analytics library. I have verified that it is the latest version.
What could be causing my problem?
I had same issue for tvOS application submit, what helped me was to add this to all cocoapods and frameworks plists:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
Do you have a device plugged in?
-If you have a device plugged in, that device's architecture is the ACTIVE ARCHITECTURE, so you need to unplug the device.
Also try;
-Set "Build Active Architecture Only" to NO for targets and project.
It turns out I had my AppStore Valid Architectures for the project, not target, set to "armv7, arm64". The problem is that comma in there. I must have added it while entering architectures manually at some point. After removing the comma, the armv7 slice builds and the app store submission succeeds.
After some digging search I could understand:
"... the presence of a given key indicates the corresponding feature is required"
".. omitting a key indicates that the feature is not required but that the app is able to run if the feature is present"
So, if you put armv7 it's the same as only armv7 devices can run it. Probably in a previous version of your app you supported all devices. So just remove the key armv7 and your app will be able to support all kind of devices (armv7 and arm64).
Pay attention to supported architectures
Related
I'm making an application with Swift 2.1, Xcode 7.1.1.
I want it to be at least compatible with iPhone 4S and 5C.
I configured my project settings with armv7 architecture, info.plist, but when I publish my build, I only have arm64 defined in iTunes connect.
Where do I have to configure it correctly ?
Make sure Build Active Architecture Only is set to NO (at least for release), or else it will use the architecture of the connected device at the time you create the build.
please remove
<string>armv7</string>
from the array in
UIRequiredDeviceCapabilities
in info.plist
and submit the app for review on iTunes Connect.
I'm trying to upload my app to the store but here is what i get:
What I've done before::
1- removing armv7s from plist.info files
2- disabling compile for active architecture only
any idea please??
Based on the errors I would speculate that your Architectures build setting includes architectures other than arm64, but you specify arm64 as a required device capability in your Info.plist. You should either remove that requirement from your Info.plist or set the Architectures build setting to just arm64.
I'm trying to archive a content blocker application. Because the API is only available on 64 bits, I've added this in the info.plist of the app:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
This value is only in the application target, not the content blocker target. When sending my application to the App Store using Xcode Organizer it returns this message:
ERROR ITMS-90503: "Invalid Bundle. Apps that have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist must only contain the arm64 slice."...
I've checked online and this error looks new and undocumented, do you know what should I do to remove it?
As dsiddhpura suggested, the solution is to check the valid architectures in the build settings. Be sure to have selected "All" in the right top-right corner and verify that there is only arm64 in the valid architectures.
It should look like this:
your plist must be look like that:
Set Build Active Architecture Only set to Yes. And you validate build product look like that:
You can't upload apps to the App Store with that requirement. The only requirement you can have is lowest iOS target. So if you specify iOS9 (latest) then the iPhone 4s is still able to download your app. iPhone 4s runs the 32-bit architecture.
Either you can remove the architectures other than "arm64" or you can limit the deployment target to 8.0
I am trying to submit an application via the application loader. I get this error. But I already checked in the build settings and all three architectures are included in the Valid Architectures settings.
Disconnect any device and just leave the option in "iOS Device" and archive it.
Change 'Build Active Architecture Only' to 'NO'
I am trying to upload an app via xcode. This app is nearly identical to many other apps I have updated or uploaded recently, using the same Provisioning Profile, so that and the signature shouldn't be a problem. I also don't have any Entitlements in the project, nor are they enabled or pointed to in the Build Settings. I believe I have confirmed every Build Setting, as suggested on the many threads on this topic, but still, no luck. In addition, I have both armv6 and armv7 listed as Architectures. But still, I am geting the following errors:
1) iPhone/iPod Touch: application executable is missing a required architecture: At least one of the following architectures must be present: armv6
2) Application faild codesign verification. The signature was invalid, contains dissallowed entitlements, or was not signed with and iPhone Distribution Certificate.
3) Unable to extract entitlements from application: (null)
After much hunting and trying every common fix for code signing and entitlements issues, this seemed to work: Deleted armv6 from both Project and Target settings and changed OS Deplotment Target (in Target and Project) to 4.3 (or 5.0, both worked).
Subsequent times I've hit this snag, I've also found it especially useful to use the validate function before actually submitting. It can give you clues as to what is wrong that may not be included in the upload failed errors.