Sphero iOS AR и Unity Build
Есть ли учебник о том, как собрать пример проекта Unity AR на iOS? Я, очевидно, пропускаю несколько шагов, потому что после перетаскивания папки Editor в папку Asset проекта, нажатия кнопки Build and Run и сохранения сборки в фактической папке проекта, Xcode по-прежнему выдает мне несколько предупреждений и несколько ошибок:
Undefined symbols for architecture armv7:
"RobotVision::AREngine::startVision()", referenced from:
__ARUNBridgeStartVisionEngine in ARUNBridge.o
"RobotVision::VirtualSphero::locatorAlignmentAngle() const", referenced from:
ARUNBridge::getCurrentResultStruct() in ARUNBridge.o
"RobotVision::VirtualSphero::pose() const", referenced from:
ARUNBridge::getCurrentResultStruct() in ARUNBridge.o
"RobotVision::ARResult::virtualSphero() const", referenced from:
ARUNBridge::getCurrentResultStruct() in ARUNBridge.o
"RobotVision::Pose::position() const", referenced from:
ARUNBridge::getCurrentResultStruct() in ARUNBridge.o
(...)
ARUNBridge::initializeBridge(RobotVision::PlatformParameters) in ARUNBridge.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Большое спасибо за вашу помощь!
3 ответа
Убедитесь, что вы создаете свой проект xcode на том же уровне в вашей файловой системе, что и папка Assets проекта, сценарий postprocessbuildplayer делает некоторые предположения о том, где вы строите xcodeproj, и он должен быть на этом уровне.
Например, если ваша папка ресурсов находится здесь:
/myproject/Assets
Ваш файл xcodeproj должен быть здесь
/myproject/generatedProject/Unity-iPhone.xcodeproj
Возможно вы можете удалить:
extern CMMotionManager *sMotionManager;
и добавить:
CMMotionManager *sMotionManager;
между @implementation ARUNBridge_iOS и @end
или поместите это к @interface в это.h файл
Следующие шаги решили мои проблемы (аналогично как исходному посту, так и первому ответу):
1) удостоверился, что мой проект был Unity 3.5.7 (я пытался продолжить работу в 4.2.2, мне пришлось отменить любые изменения настроек проекта через git и удалить каталоги Library и obj)
2) удалить существующий проект (в папке, в которой находится директор Assets, я встраивал в каталог ios, который я удалил)
3) XCode, похоже, хранит некоторые файлы настроек / промежуточных файлов. Я должен был выбрать Product->Clean, удерживая нажатой клавишу alt (alt изменит запись "Clean" на "Clean Build Folder").
На этом этапе ошибка компоновщика _sMotionManager исчезла, но я получил кучу ошибок компоновщика с упоминанием символов i386. Чтобы избавиться от них, я просто:
4) Убедитесь, что целью вашей сборки является устройство, а не симулятор. Симулятор для iOS строит двоичные файлы x86, а не ручные, а библиотеки роботов / видений были скомпилированы только для ARM.
Надеюсь, это поможет, я воскресил проект AR сегодня и наткнулся на эту тему.