AskCleanAskClean问净

Xcode 模拟器存储:运行时、设备数据与清理

AskClean 团队 · 更新于 2026-09-29

先盘点 Xcode 模拟器的运行时和各设备数据,再通过 Xcode 或 simctl 删除不再需要的目标。运行时可以供多个设备共用,但每台设备的应用与测试数据各自保存。先保留需要的状态,不要直接删除整个 CoreSimulator 目录。

一个共享运行时连接多个独立设备数据块的概念图
运行时可供多个设备使用,各设备另存应用和测试数据。此图为概念示意。

先区分运行时与设备数据

运行时是共享的系统镜像;设备另有应用、文稿、缓存和测试状态。先查看 xcrun simctl list devices。下方只读脚本测量常见开发目录并列出模拟器状态,不删除文件、不请求管理员权限;它不覆盖所有系统级运行时位置,还需查看 Xcode 组件管理器。运行前请检查脚本源码。

文中的菜单名保留英文写法;实际名称可能因界面语言和版本而异。

确认范围后再删除设备

xcrun simctl delete unavailable 会删除所有被标记为 unavailable 的设备及其本地数据,只在整个列表都可删除时使用。不可用不等于无用:兼容的 Xcode 或重新安装运行时可能让现有数据重新可访问。需要的数据先导出;无法导出或重建的状态应保留。

仍可用但不再需要的设备可通过 Xcode 的模拟器管理器单独删除;部分版本入口为 Window > Devices and Simulators > Simulators。抹掉内容与设置会保留设备,删除则连设备记录一起移除;两者都不能从废纸篓恢复数据。

通过 Xcode 管理运行时

打开 Xcode Settings > Components,部分旧版称为 Platforms。保留测试和复现用户问题所需的系统版本,只移除不再使用的运行时。使用组件管理器,不手工拆删运行时包。不要整体删除 ~/Library/Developer/CoreSimulator,也不要把陌生缓存当成可随意清理的文件。

比较用量并验证保留的设备

记录目录用量和可用磁盘空间,每次处理一类后用同样方式复测。脚本把 du 用量转换成可读单位,不代表实际可用空间的精确增量;运行时还需结合组件列表核对。随后启动保留运行时下的设备,执行代表性应用或测试并检查所需状态。重新安装运行时不能恢复已删除设备的数据,不承诺固定释放量。

单独保护 Archives 与符号文件

Archives 可能包含发布构建和分析崩溃所需的 dSYM,也可能用于重新导出或重签。保留仍在支持的版本,验证可用备份后才考虑在 Organizer 删除本地副本。它们不是模拟器缓存。本指南没有为本次修订删除真实设备或运行时。

删除前要核对什么

先确认实际路径、用途和恢复方式。下表不是自动删除清单,也不承诺能释放固定容量。

项目检查位置删除后果与保留条件
不可用设备xcrun simctl list devices删除本地应用与测试状态;先确认列表中没有需要保留的数据。
可用设备Xcode > Devices and Simulators删除所选设备的数据,先导出仍有用途的内容。
运行时Xcode Settings > Components移除系统镜像;重新安装不等于恢复已删除的设备数据。
CoreSimulator 缓存~/Library/Developer/CoreSimulator/Caches检查占用即可;本指南未验证手工删除陌生缓存。

常见问题

删除 unavailable 设备安全吗?

仅在核对完整列表后执行。这条命令删除全部不可用设备及数据,不经过废纸篓。缺少运行时不能证明数据可丢弃。

删完设备,空间为什么仍很大?

命令不删除已安装运行时或可用设备,需要分别检查。DerivedData 也属于不同的构建输出目录,删除它不会移除模拟器运行时。

参考来源