исполняемый файл приложения отсутствует необходимая архитектура armv6

81

Я использую xCode 4.2 и пытаюсь развернуть свое приложение. Я не могу пройти проверку со следующим сообщением об ошибке:

application executable is missing a required architecture armv6

Для моей архитектуры установлено значение Standard (armv7). Это ЕДИНСТВЕННЫЙ вариант в раскрывающемся списке. Базовый SDK: iOS 5.0 (это единственный вариант) Deployment SDK: 3.2 Build Active Architecture Only: NO Допустимые архитектуры: armv6 armv7 armv7f armv7k

Кто-нибудь знает решение этой проблемы?

азамшарп
источник
На самом деле у повторяющегося вопроса есть другое решение, которое состоит в том, чтобы вернуться к старой версии xCode. Мне было интересно, есть ли способ решить эту проблему в текущей версии.
azamsharp
Оказывается, единственное решение - удалить xCode 4.2 и установить xCode 4.1
azamsharp
1
Поскольку iOS 5.0 и Xcode 4.2 являются бета-версией программного обеспечения, они все еще находятся под NDA. Лучше всего обсудить их на форумах разработчиков Apple: devforums.apple.com . Если вы обнаружите ошибку в инструментах, обязательно отправьте отчет на bugreport.apple.com .
Брэд Ларсон

Ответы:

83

В Xcode 4.2 GM это все еще проблема, но вы можете решить ее, выполнив следующие действия.

  1. Переключитесь на просмотр файлов / папок в проекте xcode

  2. Выберите свой проект (синий значок)

  3. Выберите свое приложение в разделе «Цели» в середине экрана.

  4. Перейти к настройкам сборки

  5. Найти архитектуры> Распространение

  6. Разверните этот раздел, чтобы увидеть как отладку, так и выпуск

  7. Измените "Standard (armv7) - $ (ARCH_STANDARD_32_BIT)" на "Other ..."

  8. Замените «Standard (armv7) - $ (ARCH_STANDARD_32_BIT)» на «armv6», затем добавьте новый элемент «armv7»

Помните, что вам может потребоваться сделать это для всех включенных проектов, известных как фреймворки, такие как TAPKU.

введите описание изображения здесь

J3RM
источник
Я действительно не понимаю шаг 8 ... Не могли бы вы уточнить?
Самуэль
4
Если вы выберете ДРУГОЕ в раскрывающемся списке, вы получите поле с сетками, вы можете добавить armv6 в одну строку и armv7 в следующую строку. Вы добавили неверный снимок экрана.
J3RM 08
Это меня спасло. Большое спасибо !
fyasar
1
Убедитесь, что для параметра "Только сборка активной архитектуры" установлено значение "Нет". В противном случае, если вы подключены к устройству, оно будет построено только для этого устройства ...
user739711,
46

Для Xcode 4.5 установите цель развертывания как минимум на iOS 4.3, и это разрешит ее. armv6 и более ранние версии iOS почти вымерли.

SK9
источник
2
Большое спасибо за это, это уже стоило мне двухчасовой головной боли!
RickJansen
2
да, установка цели на iOS 4.3 решает проблему и в последней версии 4.5.1 ... спасибо
Джим Хосе
40

Простой способ сделать это:

1) Щелкните значок проекта левой кнопкой мыши ( синий значок под кнопкой «Выполнить»).

2) Рядом со значком проекта (справа от него) щелкните левой кнопкой мыши имя проекта в разделе «ПРОЕКТ» (белый фон).

3) Выберите вкладку «Параметры сборки» и найдите подменю «Архитектуры» (первое). Щелкните левой кнопкой мыши на «Standard (armv7) $ (ARCH_STANDARD_32_BIT)» и выберите «Другое ...»

4) Щелкните значок «-», чтобы удалить исходное значение ( «$ (ARCH_STANDARD_32_BIT)» ). Щелкните значок «+» и напишите «armv6» (без двойных кавычек). Снова щелкните значок «+» и добавьте «armv7» (также без двойных кавычек). Щелкните "Готово" .

5) Убедитесь, что для параметра "Только сборка активной архитектуры" установлено значение "Нет". (должно быть).

6) Рядом со значком проекта (справа от него) щелкните левой кнопкой мыши имя проекта в разделе «ЦЕЛИ». и повторите шаги 3, 4 и 5.

7) Нажмите cmd + I на клавиатуре (или Продукт -> Профиль в меню Xcode) и проверьте, все ли в порядке.

Bdurao
источник
3
Я считаю эти инструкции более ясными, но не забывайте об этом важном примечании от @ J3RM: «Помните, что вам может потребоваться сделать это для всех включенных проектов, таких как фреймворки, такие как TAPKU»
benvolioT
мои настройки были такими, что "Build Active Architecture Only" было установлено на true - спасибо за решение!
Крис Брандт,
На шаге 4 вы упомянули, что нажмите Готово. Но я не вижу кнопки DOne. : / Я что-то упустил?
rohan-patel
5

Моя среда была Xcode 4.5.1. Изменение двух вещей решило эту проблему для меня.

  1. Установка цели развертывания как минимум на iOS 4.3.
  2. Сохранение только архитектуры armv7 в списке архитектур в настройках сборки и явное удаление всех остальных (включая armv6).
Раджараман
источник
Ага, я тоже. Мое приложение только для iPad отказывалось собирать, пока я не удалил armv7 из списка архитектур.
Майк Гледхилл
4

Я натыкаюсь на этот вопрос, когда ищу решение для предупреждения:

warning: iPad: application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7 (-19033)
Unable to validate your application. - (null)

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

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

Петр Бизя
источник
Действительно странно, получил такое же предупреждение и некоторые несвязанные. Изменил значение CFBundleExecutableобратно на то, что было, и все прошло нормально. Спасибо!
Адриано Лукас
3

Все ответы не помогли в моем случае с использованием Xcode 4.2.1.

Я менял Architecturesс armv7на, armv6 armv7и это сработало. Как это:

введите описание изображения здесь

самвизе
источник
3

Добавление armv6 было лишь частичной проблемой для меня, чтобы решить ту же проблему с Xcode 4.5. Мне также пришлось увеличить цель развертывания с iOS 4.1 до iOS 5.0, чтобы заставить ее работать. Многие часы разочарования из-за такого простого решения. Надеюсь, поможет.

user1712742
источник
5
Достаточно увеличить цель до 4,3.
SK9 02
-1

Мне помогло, когда я ставил только armv6под Архитектуры

Дарио Карич
источник