Загрузчик приложений: ошибка ITMS-90502

Я пытаюсь загрузить новую сборку в TestFlight, но загрузчик приложений дает мне следующую ошибку:

ошибка ITMS-90502: "недопустимый пакет. Приложения, содержащие только arm64 slice также должен иметь 'arm64' в списке UIRequiredDeviceCapabilities в информации.файл plist."

если я добавить arm64 до UIRequiredDeviceCapabilities как было предложено, я получаю другую ошибку:

ошибка ITMS-90098: "этот пакет недействителен. Ключ UIRequiredDeviceCapabilities содержит значение 'arm64', которое несовместимо со значением MinimumOSVersion '8.0'."

Я не уверен, что вызывает эту проблему и почему пакет содержит только arm64 архитектура. Я проверил настройки проекта, и они, похоже, включают другие архитектуры. ARCHS (архитектуры) имеет значение Standard architectures (armv7, arm64), VALID_ARCHS (допустимые архитектуры) имеет значение arm64 armv7 armv7s.

прошло некоторое время с тех пор, как я пытался загрузить последнюю сборку (~1 месяц). Делавший одно из обновлений от Apple что-нибудь сломать? (Я определенно не касался настроек архитектуры с тех пор, единственное, что добавлено было UIBackgroundModes = remote-notification). Или есть другая причина этой ошибки?

12 ответов


неважно, нашел проблему. Конфигурация, которую я использовал для создания архива, имела Build Active Architecture Only значение Yes. Глупый я.


Я попал в ту же ошибку через несколько месяцев после этой публикации. Я нашел эту публикацию в Google, и, если другие придут сюда по тому же пути, есть еще одна причина для ITMS 90502 ошибка (консенсус заключается в том, что это новое требование в конце октября/начале ноября 2015 года).

Если вы включаете другие фреймворки в свое приложение, они также должны содержать необходимые возможности устройства "arm64". То есть, это должно быть в информации.файл plist:

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

Если вы используете cocoapods, вы должны добавить ключ "UIRequiredDeviceCapabilities" к каждой зависимости. Включите эту установку post в свой Подфайл.

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

Я решил эту ERROR-ITMS 90502 ошибка.

Если активная архитектура установлена только в YES, но появляется та же ошибка.

однако, если ваш телефон может подключиться к mac, отключите его и загрузите.

в моем случае, решена!


У меня была эта проблема с использованием Xamarin и закончилась на этом вопросе.

для меня решением было убедиться, что никакие символы отладки не включены при создании приложения.

в Xamarin Studio щелкните правой кнопкой мыши проект - > параметры. Выберите "компилятор" в разделе "сборка". Проверьте раскрывающийся список "отладочная информация".

очистить, перестроить, упаковать и загрузить снова, и это сработало.


иначе:

1 - Отключите любое тестовое устройство от компьютера mac

2 - архиве.

проблема, которую вы упомянули, произошла только тогда, когда я попытался архивировать, пока мой iPhone был подключен.

Если вы архивируете во время отключения, эта проблема исчезнет.


просто если есть кто-то еще с этой проблемой в последнее время при создании для iOS 11 и выше, этот ключ необходим для приложения, а также для любых расширений, которые у вас есть в приложении. Однако нет необходимости иметь его в каких-либо рамках.


если цель развертывания вашей цели находится в iOS 11.0 или более поздней версии, вы должны иметь arm64 в своем info.plist. Создание нового проекта в Xcode 9.X только добавляет armv7 под UIRequiredDeviceCapabilities, кажется, ошибка.

обновить info.plist ' s UIRequiredDeviceCapabilities ключ:

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

в моем случае у меня был: ОШИБКА ITMS-90503 Только с arm64 (Без "только") в ключе UIRequiredDeviceCapabilities

и: Архивирование в режиме "отладка" работало для меня


это работает для меня..

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>armv7</string>
</array>

У меня была такая же проблема с Xamarin

все, что я сделал, чтобы исправить проблему изменить тип сборки на Release| iPhone при подключении реального устройства

надеюсь, что это поможет


в моем случае, что решило это в Visual Studio для Mac, было установить даже ARMv7 + ARM64 на панели параметров ios.