如何检查设备是否为 Vision Pro - Xcode 15 Beta 4

Car*_*sBF 6 xcode swift visionos

我有一个视频分析应用程序,我正在尝试使其与visionOS 兼容。由于不允许使用相机而崩溃;Apple 只允许从照片导入视频。

因此,我需要在启动时检查设备是否运行visionOS来显示照片选择器而不是相机视图,类似于我现在使用的检查我是否在macCatalyst或iOS上:

#if targetEnvironment(macCatalyst)
   print("We are in macOS Catalyst")
#else
   print("We are in iOS")
#endif
Run Code Online (Sandbox Code Playgroud)

提前致谢。

ARG*_*Geo 5

编译器指令

尝试os(visionOS)os(xrOS)。目前两个名字都是正确的

#if os(visionOS)
   print("We are in visionOS")
#else
   print("We are NOT in visionOS")
#endif
Run Code Online (Sandbox Code Playgroud)

2023年9月18日起,os(visionOS)这是官方记录的方式


Car*_*sBF 3

我在这里找到了一段代码的解决方法,用于检测 iPhone/iPad 型号:

    func modelIdentifier() -> String {
    if let simulatorModelIdentifier = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] { return simulatorModelIdentifier }
    var sysinfo = utsname()
    uname(&sysinfo) // ignore return value
    return String(bytes: Data(bytes: &sysinfo.machine, count: Int(_SYS_NAMELEN)), encoding: .ascii)!.trimmingCharacters(in: .controlCharacters)
}
Run Code Online (Sandbox Code Playgroud)

当在 viewDidLoad 中调用它时,它成功地将 Vision Pro 模拟器检测为“RealityDevice14,1”。