ERROR ITMS-9000: "Недопустимая архитектура: приложения, которые включают расширение приложения и фреймворк, должны поддерживать arm64

Я хочу загрузить сборку с помощью расширения пользовательской клавиатуры на Itunes Connect. Но когда я собираюсь загрузить его в Itunes Connect через приложение loader, покажите мне следующую ошибку

ERROR ITMS-9000: "Invalid architecture: Apps that include an app extension and a framework must support arm64

Я добавил действительную архитектуру для "Armv7", armv7s, arm64 в цель расширения клавиатуры и целевую цель приложения. Но я все еще сталкиваюсь с такой же проблемой.

enter image description hereenter image description here

Ответы

Ответ 1

Пожалуйста, проверьте встроенные фреймворки, если они есть. Я столкнулся с той же проблемой, и причина была такова: При отладке приложения на устройстве Xcode создает фреймворки для "текущей арки". И тогда, даже если вы попытаетесь архивировать проект, Xcode использует уже построенный для одной (!) Арки фреймворка из папки debug-iphoneos.

Итак, я решил эту проблему, установив флаг "Построить для текущей архитектуры" на "Нет" в настройках сборки целевых объектов инфраструктуры, очищая папку сборки (сдвиг опции CM), Архив.

Ответ 2

Моя проблема заключалась в том, что у меня был iPhone 6, подключенный к Xcode, поэтому все быстрые фреймворки только создали версию arm64.

Я отключил свой iPhone 6 и выбранное устройство iOS в качестве адресата.

После этого ошибка исчезла.

Еще одна вещь, которую вы можете сделать, - проверить, действительно ли созданный Архив действительно для всех требуемых архитектур.

Вы можете проверить двоичные файлы в архиве командой commandline:

lipo -info YourBinary

Результат должен выглядеть примерно так:

Architectures in the fat file: YourBinary are: armv7 arm64

Ответ 3

Я столкнулся с этой проблемой в Xcode 6.1. Я смог разрешить его, закрыв Xcode, удалив папку Derived Data, восстановив все, а затем снова архивируя.

У вас есть только "Build для текущей архитектуры", установленный в "Нет" в вашей основной цели, и любые включенные цели для конфигурации сборки, которые вы в настоящее время архивируете.

Ответ 4

Убедитесь, что ваш целевой объект установлен на универсальное устройство iOS для фреймворка.

Вы можете сделать это, перейдя в Product- > Destination- > Generic iOS.

В противном случае он строит его специально для этого устройства и только его архитектуры.