【发布时间】:2023-10-20 06:14:01
【问题描述】:
如何确保我在 iOS AppStore 上的应用仅显示与支持 ARKit 的设备的兼容性?
【问题讨论】:
标签: ios xcode app-store augmented-reality arkit
如何确保我在 iOS AppStore 上的应用仅显示与支持 ARKit 的设备的兼容性?
【问题讨论】:
标签: ios xcode app-store augmented-reality arkit
所需设备功能下的info.plist 文件的密钥是arkit。
Apple documentation on plist keys (UIRequiredDeviceCapabilities)。
键:arkit
说明:如果您的应用需要支持 ARKit,请包含此键 在设备(即配备 A9 或更高版本处理器的 iOS 设备)上。
最低版本:iOS 11.0
对现有应用的一个重要警告是,Apple 不允许您在应用发布后对其设备进行限制。
重要提示:提交时必须更改所有设备要求 对您的二进制文件的更新。您只能扩展您的设备 要求。向您的二进制文件提交更新以限制您的 不允许设备要求。您无法限制 设备要求,因为此操作将使拥有 之前通过运行新更新下载了您的应用。
如果您要向现有应用程序添加 AR 功能,您可以使用 ARKit 的 isSupported 属性来确定是否应该公开此功能。
【讨论】:
如果您的应用需要 ARKit 框架来实现其核心功能,那么您需要打开
info.plist文件(位于 macOS Finder 中您的项目文件夹中)并在密钥UIRequiredDeviceCapabilitie下 像这样添加一个字符串arkit:
<plist version="1.0">
<dict>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arkit</string>
</array>
</dict>
</plist>
但如果增强现实是您应用的次要功能, 然后在
ViewController.swift中使用这一行。你的代码应该是这样的:
if ARWorldTrackingConfiguration.isSupported {
let configuration = ARWorldTrackingConfiguration() // 6DOF
configuration.planeDetection = [.horizontal, .vertical]
sceneView.session.run(configuration)
} else {
let configuration = AROrientationTrackingConfiguration() // 3DOF
sceneView.session.run(configuration)
print("This chipset does not meet the minimum requirements.")
}
兼容 ARKit 4.0 的 iPhone 列表如下(A9...A13 CPU):
【讨论】: