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 也属于不同的构建输出目录,删除它不会移除模拟器运行时。
参考来源