You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI多平台开发如何同时预览iOS与macOS界面 无需切换Scheme

同时渲染iOS与macOS平台SwiftUI预览的实现方法
  • 第一步:选中你的MyView所在的Swift文件,在Xcode右侧「文件检查器」的Target Membership栏目下,同时勾选iOS和macOS两个目标的复选框,确保该文件会被两个平台的Target同时编译。
  • 第二步:修改预览代码,移除平台条件编译判断,直接同时返回两个平台的预览实例即可,示例代码如下:
struct MyView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            MyView()
                .previewDevice(PreviewDevice(rawValue: "iPad Pro (11-inch) (3rd generation)"))
                .previewDisplayName("iOS 端")
            
            MyView()
                .previewDevice(PreviewDevice(rawValue: "Mac"))
                .previewDisplayName("macOS 端")
        }
    }
}
  • 注意事项:
    • 该方案适配Xcode 14及以上版本,更低版本的Xcode可能存在多平台预览渲染异常的问题。
    • 如果你的MyView内部使用了平台专属的API,只需要在视图内部用#if os(iOS)/#else这类条件编译包裹差异代码即可,不要把条件判断加在预览外层,否则还是只会渲染当前Scheme对应平台的预览。

修改完成后不需要切换Scheme,Xcode的预览面板会自动同时渲染两个平台的预览效果,代码改动后两个平台的预览也会同步刷新。

内容的提问来源于stack exchange,提问作者Hundley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:45:04