You need to enable JavaScript to run this app. 如何阻止MacOS Document-based App自动加载遗留缓存文档
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止MacOS Document-based App自动加载遗留缓存文档

缓存文档的具体存储位置

这类自动加载的上次启动留存文档,本质是macOS为文档类App留存的状态恢复快照与自动保存文档,根据App是否开启沙盒,存储路径分两类:

  • 开启沙盒的App(Xcode默认调试配置):所有缓存存放在App独立沙盒目录下
    • 自动保存的文档快照路径:~/Library/Containers/[你的App Bundle ID]/Data/Library/Autosave Information/
    • 系统记录的“上次打开文档列表”状态缓存路径:~/Library/Containers/[你的App Bundle ID]/Data/Library/Saved Application State/[你的App Bundle ID].savedState/
  • 未开启沙盒的打包App:缓存直接存放在用户目录的全局Library下
    • 自动保存的文档快照路径:~/Library/Autosave Information/
    • 系统状态恢复缓存路径:~/Library/Saved Application State/[你的App Bundle ID].savedState/

注意:从Xcode启动的调试App默认使用沙盒隔离路径,不要直接到全局Library目录查找,容易因路径错配找不到对应的损坏文件。

删除操作的特殊注意事项

执行删除操作时需要留意以下要求,避免操作失效或误伤数据:

  • 必须先完全终止App进程和对应的Xcode调试会话,否则系统会在删除完成后,把内存中留存的App状态重新写入缓存文件,导致删除操作无效。
  • 精准定位待删除文件:Autosave Information目录下的自动保存文件,均以“[App名称] 自动保存的 [文档名].autosaveddocument”格式命名,只删除和你的App匹配、对应崩溃文档的文件,不要直接清空整个目录,避免误删其他App未保存的工作内容。
  • 删除前建议备份疑似损坏的缓存文件:将这类文件复制一份到桌面留存,后续调试initWithCoder、readFromData方法的解码崩溃逻辑时,该文件是最直接的复现样本,无需反复制造崩溃场景。
  • 若App开启了iCloud云文档同步,需额外检查iCloud容器目录下的副本:对应路径为~/Library/Mobile Documents/[团队ID]~[App反向域名]/Data/,如果该路径下存在同步的同份损坏文档,删除本地缓存后系统会自动从云端拉回副本,再次触发启动崩溃。
  • 可临时通过启动参数降低操作风险:在Xcode的Scheme配置中添加启动参数-NSDocumentPersistDocumentsAtLaunch NO,就能暂时跳过启动时自动加载上次文档的逻辑,先让App正常启动,再通过App内部的最近文档列表定位损坏文档手动删除,比盲目删除文件更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 20:45:02