配置EasyAR Sense for iOS¶
这篇文章介绍如何使用EasyAR package配置EasyAR非Unity的iOS工程。
如果你需要使用EasyAR Unity package,请阅读 这篇文章 了解使用package的配置。
如果你需要运行EasyAR非Unity的iOS样例,请阅读 这篇文章 。
安装需求¶
XCode 10.1 或更新版本(AppStore接受的XCode最低版本请参考 苹果官方文档 )
ARM64 CPU的iPhone、iPad等iOS真机(EasyAR不支持在模拟器和ARMv7上运行)
Static framework 还是 dynamic framework¶
Static framework 和 dynamic framework 不是Apple的官方语言。我们在这里使用这些词组来表示包含静态库的framework和包含动态库的framework。
EasyAR Sense提供 static framework 及 dynamic framework。
如果对 Apple的 dynamic framework不熟悉,可以阅读Apple的 Embedding Frameworks In An App 文档。
关于选择 framework的一些提示,
Apple 对上传app store的可执行文件的二进制大小有限制,所以如果你有一个非常大的可执行文件,需要选择 dynamic framework,这样做不会增加可执行文件的大小。请注意整体的app的大小并不会改变。
不同类型的framework的执行时间、性能和特性不会有任何区别。
static framework中包含x86, x86_64和armv7的空实现接口,可用于为模拟器和ARMv7编译,但不能运行。dynamic framework不包含x86和x86_64的空实现接口,只包含armv7的空实现接口。
添加 Frameworks¶
Static Framework¶
在使用EasyAR static framework的时候需要添加这些 framework,
easyar.framework
libc++.tbd
Accelerate.framework
AVFoundation.framework
CoreGraphics.framework
CoreImage.framework
CoreMedia.framework
CoreMotion.framework
CoreVideo.framework
OpenGLES.framework
UIKit.framework
ARKit.framework (以optional方式添加)
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];
隐私配置¶
需要配置一些隐私设置。
如果要使用 camera,添加 Privacy - Camera Usage Description,
如果要使用录屏,添加 Privacy - Microphone Usage Description,
其它代码¶
剩下的就是写EasyAR的逻辑以及其它代码。你可以参考EasyAR的样例来实现。
如何使用Swift API¶
EasyAR Sense Swift API 是以源代码形式提供的,这样可以提供最好的兼容性(苹果从Swift 5开始提供ABI兼容)。
使用EasyAR Sense 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
Accelerate.framework
AVFoundation.framework
CoreGraphics.framework
CoreImage.framework
CoreMedia.framework
CoreMotion.framework
CoreVideo.framework
OpenGLES.framework
UIKit.framework
ARKit.framework (以optional方式添加)
关闭 Bitcode
EasyAR 不使用bitcode也不提供 bitcode 兼容性。
需要保证在配置中禁用bitcode,
Deployment Target
根据你自己的app工程修改 deployment target,保证 EasyARSwift的工程的deployment target比app工程的小或相等。
嵌入和使用 EasyARSwift framework¶
在工程中嵌入EasyARSwift framework
在Swift源代码中 import EasyARSwift
代码书写方式可以参考 HelloARSwift 样例中的代码或 API Reference 。