Flutter检测visionOS系统失败及编译报错问题咨询
问题解答
问题1:切换到visionOS SDK后提示"No such module 'Flutter'"
是的,当前Flutter官方尚未正式支持visionOS作为独立目标平台。当你将项目目标切换为visionOS SDK时,Flutter提供的iOS原生框架并不兼容该SDK,因此会出现找不到Flutter模块的编译错误。目前Flutter对Apple Vision Pro的支持仅局限于iPad兼容模式(即最初使用的"Apple Vision Pro (designed for iPad)"目标),这种模式下使用的是iOS SDK,能够正常加载Flutter框架。
问题2:visionOS系统检测代码总是进入iOS分支
你使用的"Apple Vision Pro (designed for iPad)"模拟器本质上运行的是iOS环境,并非原生visionOS环境,因此os(visionOS)的条件永远不会触发,代码自然会走到os(iOS)分支。
如果需要在iPad兼容模式下区分当前是否在Vision Pro模拟器中运行,可以通过检测设备型号来实现,示例代码如下:
import UIKit func isRunningOnVisionProiPadMode() -> Bool { return UIDevice.current.model.contains("Vision Pro") }
注:若要真正验证
os(visionOS)分支,需要使用原生visionOS模拟器并配置visionOS目标,但受限于当前Flutter的官方支持情况,暂时无法正常运行Flutter代码。
内容的提问来源于stack exchange,提问作者timyau
相关产品推荐
相关产品推荐

