配置EasyAR iOS SDK(非Unity)¶
这篇文章介绍如何使用EasyAR package配置EasyAR非Unity的iOS工程。
如果你需要使用EasyAR Unity package,请阅读 这篇文章 了解使用package的配置,或 这篇文章 了解Unity样例的使用。
如果你需要运行EasyAR非Unity的iOS样例,请阅读 这篇文章 。
安装需求¶
XCode 6 或更新版本(我们在XCode 6.4和XCode 7.1中测试通过)
IPhone或IPad或其它真实Apple设备(EasyAR不支持在虚拟机上运行)
Static framework 还是 dynamic framework¶
Static framework 和 dynamic framework 不是Apple的官方语言。我们在这里使用这些词组来表示包含静态库的framework和包含动态库的framework。
EasyAR SDK 从2.0版本开始提供 static framework 及 dynamic framework。在1.x版本中只提供了static framework。
Dynamic framework 是在 iOS 8.0 之后引入的,在使用dynamic framework的时候需要将app的编译 target 设为 iOS 8 或以后。
如果对 Apple的 dynamic framework不熟悉,可以阅读Apple的 Embedding Frameworks In An App 文档。
关于选择 framework的一些提示,
Dynamic framework 不能使用在 iOS 7系统上,所以如果你希望app兼容 iOS 7 ,则需要使用 static framework。
Apple 对上传app store的可执行文件的二进制大小有限制,所以如果你有一个非常大的可执行文件,需要选择 dynamic framework,这样做不会增加可执行文件的大小。请注意整体的app的大小并不会改变。
不同类型的framework的执行时间、性能和特性不会有任何区别。
添加 Frameworks¶
Static Framework¶
在使用EasyAR static framework的时候需要添加这些 framework,
easyar.framework
libc++.tbd
AVFoundation.framework
CoreGraphics.framework
CoreImage.framework
CoreMedia.framework
CoreVideo.framework
OpenGLES.framework
UIKit.framework
对于 EasyAR SDK Pro,需要额外添加这些framework
Accelerate.framework
CoreMotion.framework
Dynamic Framework¶
在使用EasyAR dynamic framework的时候只有 easyar.framework 是需要添加的,
easyar.framework
不要忘记将 easyar.framework 加入 Embedded Binaries 列表。
禁用 Bitcode¶
EasyAR 不使用bitcode也不提供 bitcode 兼容性。
需要保证在配置中禁用bitcode,
初始化EasyAR¶
使用easyar_Engine的initialize: 方法来初始化EasyAR。你可以添加初始化代码如下,
[easyar_Engine initialize:key];
设置rotation¶
使用easyar_Engine的setRotation: 方法来设置rotation。你可以添加代码如下,
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
switch (toInterfaceOrientation)
{
case UIInterfaceOrientationPortrait:
[easyar_Engine setRotation:270];
break;
case UIInterfaceOrientationPortraitUpsideDown:
[easyar_Engine setRotation:90];
break;
case UIInterfaceOrientationLandscapeLeft:
[easyar_Engine setRotation:180];
break;
case UIInterfaceOrientationLandscapeRight:
[easyar_Engine setRotation:0];
break;
default:
break;
}
}
隐私配置¶
需要配置一些隐私设置。
如果要使用 camera,添加 Privacy - Camera Usage Description,
如果要使用录屏,添加 Privacy - Microphone Usage Description,
其它代码¶
剩下的就是写EasyAR的逻辑以及其它代码。你可以参考EasyAR的样例来实现。
如何使用Swift API¶
EasyAR SDK Swift API 是在 2.1.0 版本中引入,如果你需要使用内置的 Swift API,请确保使用 EasyAR SDK 2.1.0 或更新版本。
EasyAR SDK Swift API 是以源代码形式提供的,这样可以提供最好的兼容性(苹果没有对不同Swift版本提供严格的ABI兼容方案)。
使用EasyAR SDK Swift API需要首先创建一个framework工程然后将framework target嵌入到你的工程中。由于不同项目的配置可能会有所不同,所以EasyAR没有提供预先配置好的XCode工程。
创建 EasyARSwift framework 工程¶
创建一个 Cocoa Touch Framework 类型的新工程并命名为EasyARSwift
你可以选择将EasyARSwift工程嵌入到你的app工程里面或创建独立的工程。
导入EasyAR Swift代码到 EasyARSwift 工程
XCode自动生成的 EasyARSwift.h 文件并没有被使用,可以安全删除。
在build settings中配置 Objective-C Bridging Header
请注意,这个选项在导入swift文件之前不会显示在XCode选项中,所以请一定先导入Swift代码再进行配置更改。
导入 static easyar.framework 到 EasyARSwift 工程中
添加 Linked Frameworks and Librarires
在使用EasyAR static framework的时候需要添加这些 framework,
easyar.framework
libc++.tbd
AVFoundation.framework
CoreGraphics.framework
CoreImage.framework
CoreMedia.framework
CoreVideo.framework
OpenGLES.framework
UIKit.framework
对于 EasyAR SDK Pro,需要额外添加这些framework
Accelerate.framework
CoreMotion.framework
关闭 Bitcode
EasyAR 不使用bitcode也不提供 bitcode 兼容性。
需要保证在配置中禁用bitcode,
Deployment Target
根据你自己的app工程修改 deployment target,保证 EasyARSwift的工程的deployment target比app工程的小或相等。
嵌入和使用 EasyARSwift framework¶
在工程中嵌入EasyARSwift framework
在Swift源代码中 import EasyARSwift
代码书写方式可以参考 HelloARSwift 样例中的代码或 API reference 。