问题
I am trying to upload a new build to TestFlight, but Application Loader gives me the following error:
ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."
If I add arm64
to UIRequiredDeviceCapabilities
as suggested, I get another error:
ERROR ITMS-90098: "This bundle is invalid. The key UIRequiredDeviceCapabilities contains value 'arm64' which is incompatible with the MinimumOSVersion value of '8.0'."
I am not sure what causes this problem and why bundle only contains arm64
architecture. I checked project settings and they seem to include other architectures. ARCHS
(Architectures) is set to Standard architectures (armv7, arm64)
, VALID_ARCHS
(Valid Architectures) is set to arm64 armv7 armv7s
.
It's been a while since I tried to upload the last build (~1 month). Did one of the updates from Apple break something? (I definitely haven't touched architecture settings since then, the only thing added was UIBackgroundModes = remote-notification
). Or is there some other reason for this error?
回答1:
Never mind, found the problem. The configuration which I used to build archive had Build Active Architecture Only
set to Yes
. Silly me.
回答2:
I hit the same error a few months after this posting. I found this posting on Google and, in case others come here, by the same path, there is another reason for the ITMS 90502
error (consensus is that this is a new requirement in the late-Oct/early-Nov 2015 timeframe).
If you include other frameworks in your app, they must ALSO contain the 'arm64' required device capability. That is, this must be in the Info.plist:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
回答3:
If you are using cocoapods, you have to add the key 'UIRequiredDeviceCapabilities' to every dependency. Include this post install to your Podfile.
post_install do |installer|
installer.pods_project.targets.each do |target|
plist_buddy = "/usr/libexec/PlistBuddy"
plist = "Pods/Target Support Files/#{target}/Info.plist"
puts "Add armv7 to #{target} to make it pass iTC verification."
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities array" "#{plist}"`
`#{plist_buddy} -c "Add UIRequiredDeviceCapabilities:0 string armv7" "#{plist}"`
end
end
回答4:
If your target's deployment target is at iOS 11.0 or later you must have arm64
in your info.plist
. Creating a new project in Xcode 9.x only adds armv7
under UIRequiredDeviceCapabilities
, seems to be a bug.
Update your info.plist
's UIRequiredDeviceCapabilities
key to:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
回答5:
I solved this ERROR-ITMS 90502
error.
If you Active Architecture Only Set To YES
, but Same error show up.
However if your phone can connect to mac, disconnect it and upload.
In my case, solved!
回答6:
I had this issue using Xamarin and ended up on this question.
For me the solution was to ensure that no Debug Symbols are included when building the application.
In Xamarin Studio, right-click on the project -> options. Choose "Compiler" under the "Build" heading. Check the "Debug information" drop-down.
Clean, rebuild, repackage, and upload again, and it worked.
回答7:
Another way:
1 - Disconnect any test device from your mac
2 - Archive.
The problem you mention, only happened when I tried to archive while my iPhone was connected.
If you archive while disconnected this problem will go away.
回答8:
Just if there's anyone else with this problem lately when building for iOS 11 and up, this key is needed for the app and it is also needed for any extensions you have in the app. However it is not necessary to have it in any frameworks.
回答9:
In my case i had a: ERROR ITMS-90503 With arm64 alone (without 'only') in UIRequiredDeviceCapabilities key
And: Archiving in "Debug" mode worked for me
回答10:
this works for me..
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
回答11:
I had the same issue with Xamarin
all I did to fix the issue change build type to Release| iPhone
while you connect real device
hope this help
回答12:
In my case, what solved this in Visual Studio for Mac, was to set ARMv7 + ARM64 in the ios options panel.
来源:https://stackoverflow.com/questions/30626735/application-loader-error-itms-90502