Новая ошибка архитектуры ios6: файл является универсальным (3 среза), но не содержит (n) arm7vs slice

У меня есть устройство, которое было разработано в кордове 1.8.1 и xcode 4.4. Я хотел иметь возможность обновить его для работы на iPhone 5 и ios 6. Однако даже когда я пытаюсь запустить приложение для отладки в xocde 4.5, я получаю эту ошибку:

file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/Shared/Cordova/Frameworks/Cordova.Framework/Cordova for architecture armv7s. 

Я искал его и попытался настроить проект на таргетинг arm7vs, но он не работает. Может ли кто-нибудь сказать мне, что вызывает эту ошибку?

Нужно ли обновлять мою версию Cordova/PhoneGap?

Ответ 1

iPhone 5 SoC имеет новую архитектуру: armv7s. Когда вы переключились на Xcode 4.5, ваш проект "Действительные архитектуры" мог быть обновлен, чтобы включить armv7s. Проблема в том, что ваши библиотеки пока не поддерживают его (они не созданы для armv7s).

У вас есть три варианта исправить это:

  • Удалить armv7 из проекта (цели) "Настройки сборки" / "Действительные архитектуры": enter image description here

  • Установите для параметра "Build Active Architecture Only" значение YES:
    enter image description here

  • Обновите статические библиотеки (если у них есть более новая версия с поддержкой armv7s)

EDIT: Для тех, кто не может найти параметр "Только встроенная архитектура", убедитесь, что кнопка "Все" фильтра активна в разделе "Настройки сборки":

enter image description here