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

XCode 14.3中SwiftUI预览未按PreviewProvider指定设备显示问题

解决Xcode 14.3中SwiftUI预览设备不按代码指定生效的问题

先确认代码写法是否正确

确保你的PreviewProvider代码完全符合规范,下面是正确的示例:

struct LandmarksList_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(["iPhone SE (2nd generation)", "iPhone XS Max"], id: \.self) { deviceName in
            LandmarksList()
                .previewDevice(PreviewDevice(rawValue: deviceName))
                .previewDisplayName(deviceName)
        }
    }
}
  • 重点核对PreviewDevice传入的设备名称,必须和Xcode模拟器列表里的名称完全一致(包括空格、括号、大小写,不能有拼写错误)
  • 加上.previewDisplayName(deviceName)可以在预览顶部显示设备名,方便你确认代码是否被正确识别

清理Xcode缓存

Xcode 14.3的缓存经常会导致预览异常,按以下步骤操作:

  • 按Cmd+Shift+K清理构建文件夹
  • 关闭Xcode,删除~/Library/Developer/Xcode/DerivedData目录下的所有文件
  • 重启Xcode后重新构建预览

检查预览面板的设备锁定设置

如果预览面板的设备被固定,会直接覆盖代码里的指定:

  • 打开预览面板,点击顶部显示的「iPhone 14」
  • 确保选择的是「自动」选项,而不是固定的某台设备

确认目标模拟器已存在

如果Xcode里没有你指定的模拟器,预览会自动 fallback 到默认设备:

  • 打开Window > Devices and Simulators
  • 切换到「Simulators」标签,确认「iPhone SE (2nd generation)」和「iPhone XS Max」已添加;如果没有,点左下角的「+」创建对应模拟器

重置预览服务

要是上面的方法都没用,试试重置预览服务:

  • 关闭所有预览窗口
  • 打开Xcode > Settings > Locations,点击「Derived Data」旁的箭头打开目录,删除整个文件夹
  • 重启Xcode,重新打开预览

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:02:00