1

是否有关于如何在 iOS 上构建示例 Unity AR 项目的教程?我显然错过了几个步骤,因为在将 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)

非常感谢你的帮助!

4

3 回答 3

0

确保您在文件系统中与项目的 Assets 文件夹处于同一级别构建 xcode 项目,postprocessbuildplayer 脚本对您构建 xcodeproj 的位置做出一些假设,并且它必须处于该级别。

例如,如果您的资产文件夹在这里:

/myproject/Assets

你的 xcodeproj 文件应该在这里

/myproject/generatedProject/Unity-iPhone.xcodeproj
于 2013-10-31T20:09:28.373 回答
0

以下步骤解决了我的问题(类似于原始帖子和第一个答案):

1)确保我的项目是 Unity 3.5.7(我曾尝试在 4.2.2 中继续工作,我必须通过 git 还原任何项目设置更改,并删除 Library 和 obj 目录)

2)删除现有项目(在包含Assets Director的文件夹中,我正在构建一个我删除的目录ios)

3) XCode 似乎保留了一些设置/中间文件。我必须在按住 alt 的同时选择 Product->Clean(alt 会将“Clean”条目更改为“Clean Build Folder”)。

此时 _sMotionManager 链接器错误消失了,但我收到了一堆提到 i386 符号的链接器错误。为了摆脱这些,我只是:

4)确保您的构建目标是设备而不是模拟器。iOS 模拟器构建 x86 二进制文件而不是 arm 二进制文件,并且机器人/视觉库仅针对 ARM 编译。

我希望这会有所帮助,我今天正在复活一个 AR 项目,偶然发现了这个线程。

于 2013-11-27T22:03:58.240 回答
0

也许你可以删除:

extern CMMotionManager *sMotionManager;

并添加:

CMMotionManager *sMotionManager;

在@implementation ARUNBridge_iOS 和@end 之间

或者把它放到它的 .h 文件中的@interface

于 2014-01-08T07:17:29.313 回答