Прошло много времени с тех пор, как мне пришлось настроить параметры сборки проекта. После обновления до недавнего SDK у меня возникли проблемы с созданием моей конфигурации специального распределения.
Build генерирует это предупреждение и ошибку:
предупреждение: приложения для iPhone должны включать архитектуру armv6 (текущий ARCHS = "armv7")
iPhone / iPod Touch: исполняемый файл приложения не имеет необходимой архитектуры. Должна присутствовать хотя бы одна из следующих архитектур: armv6 (-19033)
Однако в моем проекте я думал, что все настроено правильно:
- Архитектура: Стандартная (armv6 armv7)
- Базовый SDK: последняя версия iOS (в настоящее время установлена на iOS 4.2)
- Допустимые архитектуры: armv6 armv7
Я убрал все цели.
Я ценю любые советы.
Ответы:
Если используется Xcode 4.2 или выше, попробуйте следующее:
Нажмите на название вашего проекта (в левом столбце), а затем выберите Цель:
Перейдите на вкладку «Настройки сборки» (в правом столбце):
Нажмите строку «Выпуск» или «Распространение» в разделе «Архитектуры» и выберите «Другие ...»:
Дважды щелкните выделенную строку с именем «$ (ARCHS_STANDARD_32_BIT)» в появившемся всплывающем окне и замените его, введя «armv6». Затем добавьте новую строку с помощью кнопки «плюс» в левом нижнем углу всплывающего окна и введите «armv7», затем нажмите «Готово»:
Обновление: вы должны добавить armv7s для iPhone 5. (И опустите armv6, если строите с Xcode 4.5 или выше, который больше не поддерживает armv6.)
Вот и все. Теперь вы должны иметь возможность собирать / архивировать без ошибок.
Если это все еще не работает, посмотрите этот ответ от justinxreese , который предлагает добавить записи для armv6 и armv7 в разделе «Необходимые возможности устройства» в вашем файле info.plist.
источник
Если вы снимите флажок «Построить только активную архитектуру», он соберет все действующие архитектуры.
Обновление : это больше не применимо с Xcode 4 - следуйте инструкциям Ника для Xcode 4 и позже.
источник
У меня была эта проблема даже после того, как я следовал принятому ответу и нашел следующее:
В вашем Info.plist добавьте запись для Требуемые возможности устройства. Это должен быть массив и иметь две записи.
Это будет выглядеть так:
источник
В дополнение к ответу Ника о Xcode 4.2 вам также может понадобиться просмотреть файл info.plist. Похоже, что новые проекты, запущенные в Xcode 4.2 по умолчанию, указывают 'armv7' в 'Требуемые возможности устройства'. Вам нужно будет удалить это, если вы хотите поддерживать устройства под управлением armv6 (например, iPhone 3G).
Удалите armv7 из «Требуемые возможности устройства» в yourProjectName-Info.plist
источник
Обновление ios 6
Изменения в Xcode 4.5.x для ios 6
источник
У меня тоже была эта пробема. Я просто установил цель развертывания на 4.3 и оставил только архитектуру armv7, и это сработало. В момент почти у всех есть 5, так что 4,3 в порядке.
источник
для меня это не работает с каждым ответом. но я пытаюсь TARGETS> Architectures> Debug и добавляю новую строку с кнопкой плюс, и набираю 'armv6' (with out '), затем нажимаю Done.
и, наконец, CMD + B, а затем щелкните правой кнопкой мыши PrjectName.app (в папке «Продукты»)> Открыть в Finder> Сжать «PROJECT_NAME.APP» (в Debug-iphoneos)> Загрузить в AppStore
это моя настройка экрана.
если у вас есть включить проект, пожалуйста, настройте все это. Надеюсь на вашу помощь.
источник
Попробовав смесь этих ответов, я наконец наткнулся на то, чтобы все заработало. Я так разозлился на Apple прямо сейчас. Еще час, они меня растеряли. Вот мой конфиг.
источник
Я попробовал все ответы выше, ни один не решил мой вопрос. Поэтому я создаю новый проект и проверяю параметры сборки по одному. Только «Файлы альтернативных разрешений» отличаются. Не удалось собрать проект имеет значение armv7. Удалите его, затем очистите-> build-> архив. Добиться успеха! Надежда может решить ваш вопрос
источник
Вау, я обновляю / отправляю приложения примерно каждые 6 месяцев. Каждый раз, когда я делаю это, я должен выучить «новый» способ сделать это ...
Те же проблемы, что описаны выше при работе iOS 5.1 и Xcode 4.3.2
Спасибо за сообщения! Я потратил некоторое время, обновляя все настройки проекта до armv6, armv7, но без радости. Когда я установил для параметра «Только активная сборка» значение «Нет», я получил ошибку сборки при помещении обоих объектов в один и тот же каталог.
К счастью, я заметил, что вы, ребята, изменили настройки целевой сборки. Это то, что в конечном итоге сработало (armv6, armv7 и установка «только для активной архитектуры» в «Настройки сборки цели») на «Нет». Как заявление об отказе от ответственности, я уже установил все архитектуры на armv6, armv7 в настройках проекта.
В любом случае, спасибо за помощь, Брент
источник
Я должен был быть уверен, что изменил эти настройки в настройках Target и Project в xCode 4.3.2 после того, как сделал это и настроил его для сборки armv6 и armv7 везде, где я мог представить свое приложение.
В целях безопасности я также вышел из xCode между внесением изменений и выполнением цикла очистки, сборки и архивирования.
источник
Довольно болезненная проблема для меня тоже. Просто потратил около часа, пытаясь построить и восстановить - без радости. В итоге мне пришлось сделать это:
Я думаю, это кучка жаргона в отношении arm6, arm7, так как казалось, что мой проект был действителен для обоих, по крайней мере, настройки, казалось, так и говорят), я думаю, это циничный способ обмануть нас техническими деталями, которые мы надеваем не понимаю, поэтому мы просто выбираем простой вариант и нацеливаемся на последнюю версию iOS (хорошо для Apple, когда все больше людей идут в ногу со временем) ....
источник
Вот документация Apple:
Технические вопросы и ответы QA1760
Он говорит, что есть две вещи, которые вы должны понять правильно:
armv6
в настройки сборки АрхитектураNo
.Если это по-прежнему не помогает, дважды проверьте, действительно ли вы меняете параметры сборки архитектуры для правильной конфигурации сборки - я потратил полчаса на то, чтобы поиграть с неправильной и удивляться, почему это не сработало ...
Выберите
Edit Scheme...
в меню «Продукт», щелкните схему «Архив» в левом списке и проверьте конфигурацию сборки. Измените значение, если оно не соответствует ожиданиям.источник
Заметка; Я должен был выполнить эти шаги как для моего базового проекта, так и для встроенного файла PhoneGap .xcodeproj в моем приложении.
Да, я вставляю PhoneGap; они часто обновляются, и у меня меньше двух месяцев, чтобы узнать, что функция устарела.
источник
Попробуйте изменить цель развертывания на что-то более высокое, чем процессор armv6. Настройки для xCode ссылаются на уровень операционной системы, например: версия iOS № {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}
(i) Вы можете установить это на вкладке настроек сборки или на вкладке сводки. Начните в левом верхнем углу окна Project Navigator, в котором перечислены все файлы. Нажмите на самый верхний, который имеет синий значок.
(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
источник
Если xCode продолжает жаловаться на armv7, убедитесь, что вы отключили любое подключенное устройство (особенно iPhone 5 !!) и попробуйте снова. Мне потребовались часы, чтобы узнать эту маленькую часть информации.
источник
Используя Xcode 4.2 на Snow Leopard, я использовал следующие настройки для создания приложения, работающего как на armv6 (Iphone 3G и ниже), так и на armv7 (все новее, чем 3G, включая 3GS).
не включайте armv7 в требуемые возможности устройства, если вы хотите, чтобы приложение работало на 3G и ниже.
источник