You need to enable JavaScript to run this app. SwiftUI开发:Xcode Canvas预览崩溃时如何重装其使用的预览应用
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI开发:Xcode Canvas预览崩溃时如何重装其使用的预览应用

解决Xcode Canvas专属预览环境的旧应用/数据残留问题

问题核心逻辑

Xcode Canvas的预览渲染依托的是独立于日常手动启动的iOS模拟器的专属临时沙盒实例,和普通模拟器内的应用完全隔离。常规清理操作(Clean Build Folder、删除普通模拟器内的应用)无法触达这个专属沙盒的存储文件,因此会残留旧版本安装的SQLite数据库,触发表结构不匹配的崩溃。

分步处理方案

  • 优先使用Xcode官方内置的预览环境清理入口:
    保持Xcode处于打开状态,在顶部菜单栏依次点击 Debug > Clear Preview Content and Settings,该操作会直接清空Canvas专属沙盒内的所有应用安装包、本地存储文件(含旧SQLite数据库)、预览配置缓存,是最直接匹配需求的操作。
  • 若上述操作完成后预览仍然崩溃,手动删除残留缓存:
    • 先彻底退出Xcode,避免进程占用导致文件删除失败
    • 打开访达,通过「前往文件夹」功能进入路径 ~/Library/Developer/Xcode/DerivedData,找到当前项目对应的缓存文件夹(通常以项目名开头附带随机字符串命名),删除其中的 Build/Previews 子目录——该目录存储了Canvas历次预览生成的应用构建包和关联沙盒映射
    • 继续通过「前往文件夹」进入路径 ~/Library/Developer/CoreSimulator/Devices,按修改时间排序,找到最近关联预览任务的设备文件夹,进入其下的 data/Containers/Data/Application 路径,删除所有匹配你App Bundle ID的应用沙盒文件夹
  • 重新打开Xcode启动Canvas预览,系统会自动基于最新代码构建全新的预览应用,重新生成匹配当前表结构的SQLite数据库,即可恢复正常预览。

常见操作误区提醒

  • Product > Clean Build Folder 仅清理项目编译的中间产物,不会清除Canvas沙盒内存储的用户应用数据
  • 常规手动启动的iOS模拟器和Canvas预览环境完全隔离,在普通模拟器内删除应用、重置模拟器内容,都不会对Canvas的专属沙盒产生任何影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 01:15:02