"Предупреждение: приложения для iPhone должны включать в себя архитектуру armv6", даже с настройкой конфигурации сборки

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

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

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

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

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

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

alt text

Я очистил все цели.

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

Ответ 1

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

  • Нажмите название проекта (в левом столбце), а затем Target:

    enter image description here

  • Перейдите на вкладку "Настройки сборки" (в правом столбце):

    enter image description here

  • Выберите строку "Release" или "Distribution" в разделе "Архитектура" и выберите "Другое...":

    enter image description here

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

    enter image description here

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

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

Если он по-прежнему не работает, см. этот ответ от justinxreese, в котором предлагается добавить записи для armv6 и armv7 в разделе "Обязательные возможности устройств" в вашем info.plist файл.

Ответ 2

Если вы снимите флажок "Только построить активную архитектуру", тогда он построит все допустимые архитектуры.

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

Ответ 3

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

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

  • Пункт 0: armv6
  • Пункт 1: armv7

Он будет выглядеть следующим образом:

Required device capabilities entry

Ответ 4

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

enter image description here

Удалить armv7 из "Необходимые возможности устройства" в файле yourProjectName-Info.plist

Ответ 5

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

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

  • Xcode 4.5.x(и позже) не поддерживает генерацию двоичных файлов armv6.
  • Теперь включает поддержку iPhone 5/armv7s.
  • Минимальная поддерживаемая цель развертывания с Xcode 4.5.x или более поздней версией - iOS 4.3.

Ответ 6

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

Ответ 7

для меня это не работает с каждым ответом. но я пробую TARGETS > Архитектурa > Отладка и добавьте новую строку с помощью кнопки плюс и введите "armv6" (с выводом), затем нажмите "Готово".

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

enter image description here

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

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

Ответ 8

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

enter image description here

Ответ 9

Я попробовал все ответы выше, никто не разрешил мой вопрос. Поэтому я создаю новый проект и каждый раз изменяю параметры сборки. Только "Альтернативные файлы разрешений" отличаются. Ошибка сборки проекта имеет значение armv7. Удалите его, затем очистите- > build- > archive. Добиться успеха! Надежда может решить ваш вопрос

Ответ 10

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

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

Спасибо за сообщения! Я потратил некоторое время, обновляя все настройки проекта до armv6, armv7, но без радости. Когда я устанавливаю только "строить активную архитектуру", нет. Я получил ошибку сборки о том, чтобы оба объекта были в одном каталоге.

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

В любом случае, спасибо за помощь, Brent

Ответ 11

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

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

Ответ 12

Используя Xcode 4.2 на Snow Leopard, я использовал следующие настройки для создания приложения, которое работало как на armv6 (Iphone 3G, так и ниже) и на armv7 (все новее, чем 3G, включая 3GS).

архитектуры: armv6 и armv7 (удалены $(ARCHS_STANDARD_32_BIT))
строить только активную архитектуру: нет
требуемые возможности устройства: armv6

не помещайте armv7 в требуемые возможности устройства, если вы хотите, чтобы приложение работало на 3G и ниже.

Ответ 13

Довольно болезненная проблема для меня тоже. Просто потратил около часа, пытаясь построить и перестроить - никакой радости. В конце концов я должен был сделать это:

  • Обновите базовый SDK до последнего (в моем случае iOS 5)
  • Перезапустить xCode
  • Очистка и сборка
  • Это сработало!

Я предполагаю, что это куча жаргона о arm6, arm7, поскольку он выглядел так, как будто мой проект был действителен для обоих, по крайней мере, настройки, казалось, так говорят), я думаю, это циничный способ обмануть нас техникой, которые мы не понимаем, поэтому мы просто берем простой вариант и нацеливаем новейшую iOS (хорошо для Apple с большим количеством людей, которые являются современными)....

Ответ 14

Вот документация Apple:

Техническое Q & A QA1760

В нем говорится, что вам нужно сделать две вещи:

  • Добавить armv6 в настройки сборки архитектуры
  • Установить Build Active Architecture только на No.

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

Выберите Edit Scheme... в меню "Продукт", нажмите "Архив" в левом списке и проверьте конфигурацию сборки. Измените значение, если оно не соответствует ожидаемому.

Ответ 15

Попробуйте изменить цель развертывания на нечто большее, чем процессор armv6. Настройки для xCode ссылаются на уровень операционной системы, например: версия iOS # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}

(i) Вы можете установить это на вкладке настроек сборки или на вкладке сводки. Начните в левом верхнем углу окна в Навигаторе проектов со всеми файлами, указанными в нем. Нажмите самую верхнюю, у которой есть синий значок.

(ii) Если вы планируете использовать программируемую схему схемы шейдеров, к которой обращаются и контролируются с помощью API OpenGL ES 2.0, тогда вы должны установить версию "Версии развертывания" примерно до 4.3, которая, по моему мнению, доступна только на устройствах таких как 3GS или новее. xCode сообщает, что требуется iOS 4.2.5 или выше, чтобы запустить код armv7. И, опять же, этот процессор, я считаю, начался с 3GS. * IOS 4.3 для меня сейчас выбор.

http://theiphonewiki.com/wiki/index.php?title=Armv7

http://en.wikipedia.org/wiki/List_of_iOS_devices

Ответ 16

Примечание; Мне пришлось выполнить эти шаги как для моего базового проекта, так и для встроенного файла PhoneGap.xcodeproj в моем приложении.

Да, я вставляю PhoneGap; они часто обновляются, и у меня есть менее двух месяцев, чтобы знать, что функция обесценивается.

Ответ 17

Если xCode продолжает жаловаться на armv7, убедитесь, что вы отключили любое устройство для подключения (особенно iPhone 5!) и повторите попытку. Взял у меня часы, чтобы узнать эту небольшую информацию.