验证设备支持和用户权限

检查你的app在运行时是否可以使用ARKit以及是否尊重用户的隐私


概述

ARKit要求操作系统版本不低于iOS 11.0, 同时设备的处理器不低于A9。一些ARKit特性需要更高的iOS版本和指定机型。ARKit同时需要使用设备的一个摄像头,所以你需要配置iOS隐私控制,从而使得用户可以授权你的app有权限使用摄像头。

如何处理设备的兼容性要看你的app如何使用ARKit:

  • 如果你的app的基础功能就需要使用AR(使用后置摄像头): 在你的app的Info.plist文件的UIRequiredDeviceCapabilities 区域添加arkit key。通过使用这个key, 你的app将只提供给ARKit兼容的设备。
  • 如果增强现实是你的app的次要功能: 通过测试相应的ARConfiguration子类的isSupported属性,来确认当前的设备是否能够满足你需要的AR配置。
  • 如果你的app使用人脸追踪AR: 人脸追踪需要iPhone X上的TrueDepth前置摄像头。你的app同样会提供给其他的设备,所以你必须检测ARFaceTrackingConfiguration.isSupported 属性来决定人脸识别功能是否支持当前设备。

Tip

在你的app的界面提供AR功能之前检测isSupported属性,因此用户在使用不被支持的设备的时候就不会因为使用不了这些功能而感到失望了

处理用户同意和隐私

当你的app想要使用ARKit时,用户必须显式的授权app摄像头的使用权限。ARKit将会在第一次运行AR会话时向用户请求摄像头权限。

iOS要求你的app提供一条在请求用户摄像头或麦克风权限时展示的静态信息。你的app的Info.plist文件必须包含NSCameraUsageDescription 这个键值。这个键值提供了你的app为什么需要使用摄像头权限的解释,因此用户会很明了的给予你的app授权。

记录

如果你使用Xcode模板来创建一个新的ARKit app,默认的摄像头使用描述将会提供给你。

如果你的app使用 ARFaceTrackingConfiguration ,ARKit将会为app提供私人的面部信息。如果你使用ARKit人脸追踪的特性,那么你的app必须包含一个隐私政策,即描述给用户你将会如何使用人脸追踪和人脸数据。详情请见Apple Developer Program License Agreement