Application Loader: ERROR ITMS-90502
Asked Answered
S

13

30

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?

Sphinx answered 3/6, 2015 at 17:22 Comment(0)
S
39

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

Sphinx answered 3/6, 2015 at 18:13 Comment(6)
Hi, so we should set Build Active Architecture Only to NO for Debug and Release?Latour
Also, what is the architecture in your Info.plist UIRequiredDeviceCapabilities?Latour
@Latour Build Active Architecture Only should be set in the build settings of the target you use to create archive. I guess that should be Release. UIRequiredDeviceCapabilities contains a single item, armv7.Sphinx
Build Active Architecture for Debug is YES, and for Release is NO?Latour
@deville, what do you think of this one #31974390Lynelllynelle
In the case of Xamarin Studio 6.0, I had to uncheck Enable device-specific builds in the iOS Build preference pane.Lindley
A
13

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>
Aesthete answered 10/11, 2015 at 23:36 Comment(0)
G
10

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
Gymnast answered 17/11, 2015 at 8:57 Comment(1)
Found that this solution worked for my case today, but I needed to replace arm7 with arm64. iTunes Connect was accepting my app just fine up until tonight, but then I got the above error and this snippet with the architecture substitution fixed the error.Catto
S
8

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>
Sealer answered 28/2, 2018 at 22:7 Comment(2)
This was it for me. I switched min support from iOS 10 to iOS 11 and needed to change this in order to submit to the store.Acting
Strangely enough now this caught during review and not upload.Weisberg
R
6

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!

Realtor answered 3/9, 2015 at 5:59 Comment(2)
this is the tipical XCode nonsense: never had this problem before some minutes ago, when device is connectedCasandra
Unplugging my iPad fixed it for me. Thanks very much! (I'm using Xamarin)Saline
L
2

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.

Langur answered 7/9, 2016 at 0:29 Comment(0)
A
2

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.

Aa answered 16/2, 2017 at 0:58 Comment(0)
C
2

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.

Caulis answered 17/10, 2017 at 15:35 Comment(0)
D
1

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

Dorice answered 21/7, 2016 at 13:31 Comment(1)
It's not an explanation. May have something to do with the default value of "Build for active architecture only" in Debug defaulted to "Yes", in Release to "No". I.e. probably you built 64-bit-only bundle.Lumpish
C
1

this works for me..

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>armv7</string>
</array>
Centerboard answered 22/3, 2017 at 10:40 Comment(0)
G
1

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

Garment answered 18/9, 2017 at 9:0 Comment(0)
B
0

In my case, what solved this in Visual Studio for Mac, was to set ARMv7 + ARM64 in the ios options panel.

Blackford answered 11/10, 2017 at 10:59 Comment(0)
F
0

Select Generic iOS Device in the devices/simulators list before archiving

Foreigner answered 26/2, 2020 at 16:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.