XCode 4.5 - неопределенные символы для архитектуры armv7

Я новичок в разработке iOS, и мне поставили задачу обновить устаревшее приложение до iOS6. Приложение было создано с помощью Unity. В XCode 4.5, когда я пытаюсь запустить приложение Unity-iPhone на своем устройстве (iPhone 4), я получаю эту ошибку:

Xcode cannot run using the selected device.
Choose a destination with a supported architecture in order to run on this device.

Я перешел к настройкам сборки для цели и заметил, что armv6 настроен для архитектур и допустимых архитектур. Я изменил обе эти настройки на стандартные (armv7, armv7s). Когда я попытался запустить проект, я получил 104 ошибки компилятора, подобные этой:

Undefined symbols for architecture armv7:
  "ForceInclude_BaseBehaviourManager()", referenced from:
      RegisterManagerClasses() in RegisterClasses.o

Итак, дело не только в импорте правильных фреймворков в проект. Все эти методы находятся в одном из исходных файлов. Как их можно не определять для armv7? Кроме того, как решить эту проблему?


person user1752552    schedule 06.11.2012    source источник
comment
просто очистите и запустите проект. Затем проверьте ForceInclude_BaseBehaviourManager (), если есть какие-либо предупреждения или проблемы с приведением, исправьте это   -  person Midhun MP    schedule 06.11.2012


Ответы (3)


ПРИМЕЧАНИЕ. Для запуска приложения на устройстве версия IOS устройства должна соответствовать ЦЕЛИ РАЗВЕРТЫВАНИЯ IOS, см. Изображение ниже:

Просто измените ЦЕЛЬ РАЗВЕРТЫВАНИЯ IOS на свое устройство IOS.

Выберите Project-> Select Info (вкладка) -> выберите цель развертывания IOS в раскрывающемся списке.

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

ТАКЖЕ ПРИМЕЧАНИЕ: Xcode 4.5 (и новее) не поддерживает создание двоичных файлов armv6.

person 9to5ios    schedule 17.01.2013

Я не уверен, какую версию движка Unity вы используете, но поддерживает ли он armv7?

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

Если вы используете версию Unity, которая поддерживает armv7, вам необходимо установить минимальную версию развертывания iOS4.3.

person Abizern    schedule 06.11.2012

попробуйте архитектуру armv6 и armv7 и очистите проект
снова соберите.

person yunas    schedule 31.12.2012