2015-06-03 3 views
24

Я пытаюсь загрузить новую сборку, TestFlight, но Loader Application дает мне следующую ошибку:Application Loader: ERROR ITMS-90502

ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."

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

ERROR ITMS-90098: "This bundle is invalid. The key UIRequiredDeviceCapabilities contains value 'arm64' which is incompatible with the MinimumOSVersion value of '8.0'."

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

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

ответ

36

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

+0

Привет, поэтому мы должны установить' Строить Активную Архитектуру Only' к 'NO' для' 'Debug' и Release'? – KarenAnne

+0

Кроме того, что такое архитектура в вашем Info.plist UIRequiredDeviceCapabilities? – KarenAnne

+1

@ KarenAnne 'Build Active Architecture Only' должен быть установлен в настройках сборки целевой вами цели для создания архива. Думаю, это должен быть релиз. 'UIRequiredDeviceCapabilities' содержит единственный элемент' armv7'. –

6

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

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

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

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

+1

это типичная глупость XCode: никогда не было этой проблемы, прежде чем несколько минут назад, когда подключено устройство –

+0

Отключение моего iPad исправлено для меня. Огромное спасибо! (Я использую Xamarin) – JHawkZZ

10

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

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

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

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

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 
+2

Нашел, что это решение работало для моего дела сегодня, но мне нужно было заменить arm7 на arm64. iTunes Connect принимал мое приложение только до конца вечера, но затем я получил вышеуказанную ошибку, и этот фрагмент с заменой архитектуры исправил ошибку. – smithco

0

В моем случае я имел: ОШИБКА ITMS-90503 С только arm64 (без 'только') в UIRequiredDeviceCapabilities ключевых

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

2

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

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

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

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

2

Другой способ:

1 - Отключите все тестовое устройство от макинтош

2 - Архив.

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

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

0

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

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

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

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

надежду эта помощь

0

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

2

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

0

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

Обновления ваши info.plist «ы UIRequiredDeviceCapabilities ключа к:

<key>UIRequiredDeviceCapabilities</key> 
<array> 
    <string>arm64</string> 
</array> 
Смежные вопросы