如何使用Vuforia?

8

你好,我正在尝试使用Vuforia SDK开发iOS应用程序,但是我在哪里可以找到开始集成此SDK的方法?我查看了Vuforia网站,但没有任何有关如何将SDK集成到我的应用程序中的有趣文档?是否有教程可以遵循以了解其工作原理?在官方网站上只有适用于Unity的教程,但我想使用Objective-C开发我的应用程序。希望您能帮助我。

4个回答

15

我知道这是一个很旧的主题,但也许你会收到电子邮件提醒,或者谷歌用户会发现这个有用。

所以让我猜猜,你想在自己的项目中使用Vuforia的示例应用程序之一,对吗?然后你导入了所有内容,并使其看起来与他们的项目完全相同,但它甚至无法编译,对吗?那个示例应用程序几乎肯定是SampleVideo示例吧?如果是这样,请继续阅读...

1)如果你只是包含库在你的项目中,Xcode将会错误导入。你需要做的是...

a)复制Vuforia API内的build文件夹并将其放在其他地方

b)将其重命名为更有用的名称,比如"Vuforia"

c)使用Add...将该新文件夹放入你自己的项目中(你可以引用它,我拷贝)

d)转到Build Settings,在搜索栏中输入"search"(似乎多余,我知道)

e)现在你应该会看到两个非常重要的行,Header Search Paths和Library Search Paths。如果你没有看到它们,你需要找到它们

f)双击header search paths,以便弹出小工具。按下+按钮。现在进入finder,找到Vuforia/include文件夹(如果你拷贝它,则可能在你自己的项目内),并将该文件夹拖到弹出小工具中

g)重复以上步骤,但是改为拖动lib文件夹。

好了,完成了!不好意思,我撒谎了...

2)导入你想要的示例代码。它可能在几个不同的文件夹中

3)转到Build Phases,同时打开该屏幕进行构建。

4)会出现许多ARC错误。使用搜索栏找到这些文件,并对每个文件添加"-fno-objc-arc"标志。如有必要,请重复此操作。

5) 进行另一个构建,注意到你缺少库,而Vuforia没有告诉你(叹气)。所以在“Build Phases”中,打开“Link Binary With”,并添加以下内容:

a)AVFoundation b)AudioToolbox c)QuartzCore d)CoreMedia e)CoreVideo f)MediaPlayer g)OpenGLES h)CoreMotion i)SystemConfiguration

6) 再次进行构建。现在你会得到一个不同的错误,但直到你点击它之前它并不明显。查找“missing required architecture”。如果看到这个,把目标更改为你的手机,因为Vuforia不能在模拟器中工作。这是有道理的,因为它没有相机...或者没有,因为我的应用程序做了很多事情,不仅仅是Vuforia,但是这个限制意味着我无法在模拟器上测试任何东西。(叹气

7) 所以你将目标切换到闪亮的新iPhone 5S,进行构建...然后出现关于缺少架构的错误。所以现在你会发现缺少arm64...所以你必须进入“Build Settings”,删除“Standard Architectures”,并添加armv7和armv7s。

8) 现在,您可以查看警告,并开始修复代码中的错误和早期弃用的调用。naturalSize很容易解决:

AVURLAsset getting video size

最后一个警告。一旦你编译好所有东西,你会尝试将其中一个Vuforia头文件导入到你自己的代码中,然后你会得到另一个关于“namespace”的错误。确保更改任何从它们的代码导入的文件为.mm。

你玩得开心吗?


1
哦,我忘了一个,CoreMotion。 - Maury Markowitz
感谢指南……比Vuforia网站上的好多了。话虽如此,我仍然遇到了“Undefined symbols for architecture armv7s:” 的问题。在构建设置中,架构方面我有armv7和armv7s,而Build Active Architecture Only选项是NO,有效架构为armv7和armv7s。 - Silverstar
他们1&0,我刚看到你的帖子。那是一个奇怪的错误,你是在模拟器上运行还是在你的iDevice上运行?请注意,他们不包括模拟器的代码,因此所有调试都必须在物理设备上进行——这是该平台的又一个魅力! - Maury Markowitz

6
希望这个链接对您有所帮助:https://developer.vuforia.com/resources/dev-guide/step-2-installing-vuforia-sdk-ios https://developer.vuforia.com/resources/dev-guide/getting-started-ios-native-sdk 操作步骤如下:
1. 将未解压的Vuforia SDK放入开发目录/文件夹中。 2. 在项目中添加libQCAR.a框架。 3. 在XCode构建设置“Library Search Paths”中设置libQCAR.a框架路径。 4. 在“Header Search Paths”中设置来自未解压的Vuforia SDK的Vuforia头文件类文件夹路径。

谢谢您的回答,但是如果您仔细阅读页面上所说的内容,您很容易就会明白它是无用的指南,因为它只给出了您下载的目录结构,并没有提到我需要导入的框架以及我在 Xcode 项目中使用哪个目录。请别误解,我的评论是针对 Vuforia 网站的,因为它没有提供我需要的信息 :) - lucgian841
你能提供一张图片或更具体的教程来说明如何做吗?因为我在构建设置中找不到“其他库搜索路径”,仍然出现缺少<QCar/QCar>错误。 - E-Riddie
@EridBardhaj,首先在您的项目中导入libQCAR.a库。然后将该库文件路径(目录路径)添加到XCode构建设置的“其他库搜索路径”中。 - Tirth
我在XCode 5.0中没有看到其他库搜索路径,我只看到了Library Search Paths,我应该把它放在那里吗? - E-Riddie

3

这是版本5.0.6的正确答案。感谢您为我编译这些资源! - anders
这些列出的步骤(1-3)在描述上非常有限,因为没有逐步过程来将Vuforia添加到您自己的应用程序中。 Vuforia文档很糟糕。@Anders - 您是否已经在自己的应用程序中使用了Vuforia 5.0.6或者您使用了Vuforia示例应用程序? - Silverstar
@Silverstar 我实际上转换到了Wikitude :D - anders
的确,Vuforia非常复杂且没有文档。虽然它们有对象引用,但使用起来非常困难。我也打算转向Wikitude。 - VTPete

2
对于Vuforia 4.0(目前处于测试版),Maury的回答对我来说并不完全适用。尽管我已将架构设置为armv7 / armv7s,但仍会出现“缺少所需的体系结构armv7s”的错误。
我还需要进行以下更改:
- 在“构建设置”中将C ++语言方言更改为:C ++ 11 - 在“构建设置”中将C ++标准库更改为:libc ++
进行以上更改后,我的项目成功构建。

完整的(???)指令在这里... http://stackoverflow.com/questions/28562352/vuforia-videoplayback-example-for-4-0 - Maury Markowitz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接