ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."

I get this error each time when I try to upload my iOS 11 only App to iTunes Connect:


ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."

I have added

<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>

to every Info.plist of my targets already!


I also have set valid architectures in my build configuration to arm64 only.


I am using Xcode 9 beta 5.


Any idea how to fix that? Why does it not work even though I added UIRequiredDeviceCapabilities?

Answered by funkenstrahlen in 252209022

I figured out that I did not have UIRequiredDeviceCapabilities key in all of my targets. After adding it to all targets it worked.

I have the same problem. Brazil


😟

37789109

I tried to submit a new build of a Xamarin Forms app targeting iOS yesterday (2/21), and I'm running into the same issue. 😟


This app was submitted successfully about 2 weeks ago, and no changes have been made to the INFO.PLIST file since then (it already had/has the 'arm64' string value in the UIRequiredDeviceCapabilities array.


There are no other INFO.PLIST files in my solution, so this must be either a glitch on the Apple side or a new undocument behavior that needs to be addressed in another way. I already submitted my support ticket, wating on a non-automated response.

After doing the podfile change and making sure my application target's .plist was set to arm64, I was able to submit the IPA to iTunes Connect for the first time in the last twenty four hours.


I'll update if the binary is rejected or not (what happened last time that started this mess).

Thank you. We're investigating.

I don't know if this helps but FYI: When doing a 'validate' in Organizer, I finally got 'Validation successful' with the update in the plist files of all pods. This has been failing since yseterday .Then tried to upload the same archive to testflight and got the error again.

Then did 'Validate' again and got the error.

I got it working, after hours of trial and error.


@xad suggested adding some additional code to the Podfile. I did that and ensured that "arm64" was the only value for "UIRequiredDeviceCapabilities" in each and every .plist file.

Submitted the binary into review, looks to be going ahead and hasn't been rejected as of right now.


My assumption is the iTunes Connect validation changed and caught us all out. To be honest, it's probably a good thing.

I just tried to submit the same binary through a co-worker's machine without any of the changes and it worked fine!!! After submitting the binary successfully through their machine, I then tried again on my machine, and the validation was successful. What is this mess?

37791918


Weird case for me... yesterday morning no issues. Last night consistent issues. This morning consistent issues. Same time this morning, co worker uploads build to iTC just fine. After coworker uploads build, I do new archive and build validates fine... All 4 IPAs are attached to the ticket

I ran into the same issue on tvOS. We have a Top Shelf app extension where 'build active architectures only' was set to 'no', and changing it to 'yes' to match the main build target fixed the issue.


I also tried adding a bash script as a build phase to add this plist entry to each external framework, but it seemed that all of my frameworks already had it.


Maybe it's useful for someone else too. We use carthage, not cocoapods, so the cocoapods solution above doesn't work.



APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
  PLIST="$FRAMEWORK/Info.plist"
  /usr/libexec/PlistBuddy -c "Add UIRequiredDeviceCapabilities array" "$PLIST"
  /usr/libexec/PlistBuddy -c "Add UIRequiredDeviceCapabilities:0 string arm64" "$PLIST"
  echo "Added arm64 required device capability for $FRAMEWORK"
done

I guess Apple fixed the issue on their end.


I created a new build with a different version number, uploaded to ITC successfully, and processing completed without any errors. 🙂

Had the same problem got it working now. We had to fix certain things at our end which was incorrect. But looks like Apple made some fixes at their end as well.

=================================

Valid Architecture for Target arm64

Target Info.plist Required Device Capabilities - arm64

Target Extention Info.plist Required Device Capabilities - arm64 (Since we had a extension)

Valid Architecture for Main Project arm64

=================================


P.S. No image allowed wanted a nice before after representation :/

Images are banned for viewing by others here in what amounts to a silent fail.

We uploaded an app where in the first version we added to devise capabilities “telephony” to restrict only iPhone devices in the info plist. In the second version, we forgot to add “telephony” and we submitted it to the App store. The third version we are planning to upload with device capabilities as “telephony” but while submitting to the App Store it shows the warning: This bundle is invalid. The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions. How can we resolve this issue, if we require the device capability “telephony” for application lifetime, but due to my mistake on the second version we forgot to add the required device capabilities? What is the solution for it? Thanks in advance.

ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."
 
 
Q