我有一个视频分析应用程序,我正在努力让它与visionOS兼容.它崩溃是因为不允许使用摄像头;苹果只允许从Photos导入视频.

因此,我需要在启动时判断设备是否运行visionOS,以显示照片 Select 器而不是相机视图,就像我现在用来判断我使用的是MacCatalyst还是iOS一样:

#if targetEnvironment(macCatalyst)
   print("We are in macOS Catalyst")
#else
   print("We are in iOS")
#endif

先谢谢你.

推荐答案

我相信你已经running your iOS app directly on visionOS岁了,没有针对visionOS SDK重新编译代码,对吗?

如果是这样的话,应用程序的版本是compatible mode,任何像#if os(xrOS)这样的条件编译指令都不会起作用.它类似于在搭载Apple Silicon的Mac上运行的iOS应用程序(请查看ProcessInfo.isiOSAppOnMac).

然而,我还没有找到合适的API来确定iOS应用程序是否在运行时运行在visionOS上.

论坛链接:https://developer.apple.com/forums/thread/733029

Swift相关问答推荐

音频播放器无法播放URL音频(操作系统状态错误2003334207.)

String.Index encodedOffset已弃用,但建议的替代方案不起作用

从任务中打印

NavigationLink和ObservableObject的动画片段

SwiftUI,如何更改具有多个按钮和一个布尔条件的一个按钮标签

如何在 SwiftUI 中创建条件内容?

防止带有背景的文本扩展到 maxWidth

确定路径是否相交的有效方法

如何裁剪图像 3:4 ?迅速

Swift UI 不重绘 NSViewRepresentable 包装的文本字段

如何让不同的组件拥有不同的动画?

SwiftUI Observed Object 在发布值更改时未更新

如何仅将 SwiftUI 不透明度应用于父视图?

UnkeyedEncodingContainer 和 KeyedEncodingContainerProtocol 中的 superEncoder 是什么?

swift 如何从 Int 转换?到字符串

Swift 自定义字体 Xcode

在 Swift for iOS 中沿圆形路径绘制文本

swift 3 如何获取明天和昨天的日期(注意特殊情况)新月或新年

如何使用 Swift 将文本文件逐行加载到数组中?

显示 UIAlertController 的简单 App Delegate 方法(在 Swift 中)