Application Loader: ERROR ITMS-90502

↘锁芯ラ 提交于 2019-12-09 05:04:22

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!