Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Application Loader: ERROR ITMS-90502

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?

like image 579
Andrii Chernenko Avatar asked Jun 03 '15 17:06

Andrii Chernenko


3 Answers

Never mind, found the problem. The configuration which I used to build archive had Build Active Architecture Only set to Yes. Silly me.

like image 120
Andrii Chernenko Avatar answered Oct 18 '22 11:10

Andrii Chernenko


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>
like image 12
Ramsay Consulting Avatar answered Oct 18 '22 13:10

Ramsay Consulting


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
like image 10
John Paul Manoza Avatar answered Oct 18 '22 12:10

John Paul Manoza