«Предупреждение: приложения iPhone должны включать архитектуру armv6» даже с установленным конфигурационным набором - PullRequest
330 голосов
/ 16 ноября 2010

Прошло много времени с тех пор, как мне пришлось настроить параметры сборки проекта.После обновления до недавнего SDK у меня возникли проблемы с созданием конфигурации специального распределения.

Build генерирует это предупреждение и ошибку:

предупреждение: приложения iPhone должны включать архитектуру armv6 (current ARCHS = "armv7")

iPhone / iPod Touch: в исполняемом приложении отсутствует необходимая архитектура.Должна присутствовать хотя бы одна из следующих архитектур: armv6 (-19033)

Однако в моем проекте я думал, что все настроено правильно:

  • Архитектурыis: Standard (armv6 armv7)
  • Базовый SDK: последняя версия iOS (в настоящее время установлена ​​на iOS 4.2)
  • Действительные архитектуры: armv6 armv7

alt text

Я убрал все цели.

Я ценю любые советы.

Ответы [ 17 ]

417 голосов
/ 07 октября 2011

Если используется Xcode 4.2 или выше, попробуйте следующее:

  1. Нажмите на название вашего проекта (в левом столбце), а затем на цель:

    enter image description here

  2. Перейдите на вкладку «Настройки сборки» (в правом столбце):

    enter image description here

  3. Щелкните строку «Выпуск» или «Распределение» в разделе «Архитектуры» и выберите «Другие ...»:

    enter image description here

  4. Дважды щелкните выделенную строку с именем «$ (ARCHS_STANDARD_32_BIT)» в появившемся всплывающем окне и замените его, введя «armv6». Затем добавьте новую строку с кнопкой «плюс» в левом нижнем углу всплывающего окна и введите «armv7», затем нажмите «Готово»:

    enter image description here

Обновление: вы должны добавить armv7s для iPhone 5. (И опустите armv6, если строите с Xcode 4.5 или выше, который больше не поддерживает armv6.)

Вот и все. Теперь вы сможете создавать / архивировать без ошибок.

Если это все еще не работает, см. этот ответ от justinxreese , в котором предлагается добавить записи для armv6 и armv7 в разделе «Необходимые возможности устройства» в файле info.plist.

62 голосов
/ 16 ноября 2010

Если вы снимите флажок «Построить только активную архитектуру», тогда будут собраны все действительные архитектуры.

Обновление : это больше не применимо с Xcode 4 - следуйте инструкциям Ника дляXcode 4 и позже.

59 голосов
/ 26 июля 2011

У меня была эта проблема даже после следования принятому ответу, и я нашел следующее:

В своем Info.plist добавьте запись для Требуемые возможности устройства.Это должен быть массив и иметь две записи.

  • Item 0: armv6
  • Item 1: armv7

Это будет выглядеть так:

Required device capabilities entry

26 голосов
/ 17 октября 2011

В дополнение к ответу Ника о Xcode 4.2 вам также может понадобиться просмотреть файл info.plist.Кажется, будто новые проекты, запущенные в Xcode 4.2 по умолчанию, указывают 'armv7' в 'Требуемые возможности устройства'.Вам нужно будет удалить это, если вы хотите поддерживать устройства, которые работают под управлением armv6 (например, iPhone 3G).

enter image description here

Удалите armv7 из «Требуемые возможности устройства» в yourProjectName-Info.plist

21 голосов
/ 11 октября 2012

Обновление ios 6

Изменения в Xcode 4.5.x для ios 6

  1. Xcode 4.5.x (и более поздние версии) не поддерживает генерацию armv6binaries.
  2. Теперь включает поддержку iPhone 5 / armv7s.
  3. Минимальная поддерживаемая цель развертывания с Xcode 4.5.x или более поздней версии - iOS 4.3.
6 голосов
/ 16 октября 2012

У меня тоже была эта проблема.Я просто установил цель развертывания 4.3 и оставил только архитектуру armv7, и это сработало.На данный момент почти у каждого есть 5, так что 4,3 хорошо.

3 голосов
/ 17 января 2012

Попробовав смесь этих ответов, я наконец наткнулся на то, чтобы все заработало. Я так разозлился на Apple прямо сейчас. Еще час, они меня растеряли. Вот мой конфиг.

enter image description here

3 голосов
/ 31 октября 2011

для меня это не работает с каждым ответом.но я пытаюсь TARGETS> Architectures> Debug и добавляю новую строку с кнопкой плюс, и набираю 'armv6' (with out '), затем нажимаю Done.

и, наконец, CMD + B, а затем щелкните правой кнопкой мыши PrjectName.app (в папке «Продукты»)> Открыть в Finder> Сжать «PROJECT_NAME.APP» (в Debug-iphoneos)> Загрузить в AppStore

enter image description here

- это мои настройки экрана.enter image description here

, если у вас есть включаемый проект, настройте его все.Надеюсь на вашу помощь.

2 голосов
/ 30 июня 2012

После этого я должен был обязательно изменить эти настройки в настройках Target и Project в xCode 4.3.2 и настроить его на сборку для armv6 и armv7 везде, где я мог представить свое приложение.

В целях безопасности я также вышел из xCode между внесением изменений и выполнением цикла очистки, сборки и архивирования.

2 голосов
/ 14 июня 2012

Ух, я обновляю / отправляю приложения примерно каждые 6 месяцев.Каждый раз, когда я делаю это, мне приходится изучать «новый» способ сделать это ...

Те же проблемы, что описаны выше при работе с iOS 5.1 и Xcode 4.3.2

Спасибо заСообщенийЯ потратил некоторое время, обновляя все настройки проекта до armv6, armv7, но без радости.Когда я установил для параметра «Только активная сборка» значение «Нет», я получил ошибку сборки из-за того, что оба объекта были помещены в один и тот же каталог.

К счастью, я заметил, что вы, ребята, изменили настройки целевой сборки.Это то, что в итоге сработало (armv6, armv7 и установка «только для активной архитектуры» в «Настройки сборки цели») «Нет».Как заявление об отказе от ответственности, я уже установил все архитектуры на armv6, armv7 тоже в настройках проекта.

В любом случае, спасибо за помощь, Брент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...