macOS 开发者缓存清理:哪些能删、哪些删了就出事
每个构建工具都会留下缓存。在一台常用机器上,它们加起来往往有几十 GB。让清理变得安全的规则只有一条,而且值得在任何命令之前先讲清楚:只删工具能从零重建的东西。
这 13 类可以放心删(不会丢数据)
| 类别 | 路径 | 重建的代价 |
|---|---|---|
| Xcode 编译缓存 | ~/Library/Developer/Xcode/DerivedData | 下一次是全量编译 |
| Xcode 中间产物 | DerivedData/*/Build/Intermediates.noindex | 同上,但索引数据保留 |
| SwiftPM 缓存 | ~/Library/Caches/org.swift.swiftpm | 重新解析依赖 |
| CocoaPods 缓存 | ~/Library/Caches/CocoaPods | 重新下载 Pod |
| npm 下载缓存 | ~/.npm/_cacache | 重新下载软件包 |
| pnpm 仓库 | ~/Library/pnpm/store | 每个项目、每个包全部重下 |
| Yarn 缓存 | ~/Library/Caches/Yarn | 重新下载软件包 |
| Go 构建缓存 | ~/Library/Caches/go-build | 所有包重新编译 |
| Gradle 缓存 | ~/.gradle/caches | 重新下载依赖与插件 |
| Python 字节码 | 任意 __pycache__ | 下次 import 时重新编译 |
| Rust 构建产物 | 任意 target/ | 重新完整 cargo build |
| 崩溃与卡死报告 | ~/Library/Logs/DiagnosticReports | 没有代价,它们只是诊断输出 |
| Homebrew 下载缓存 | ~/Library/Caches/Homebrew | 重新下载 formula |
注意每一行的共同点:工具不需要问你任何事就能把它重新生成出来。这就是全部的判据。
看起来像缓存、其实不是的东西
~/Library/Developer/Xcode/Archives—— 你发布过的构建与它们的 dSYM。删掉可能意味着:用户手上那个版本的崩溃报告,你再也符号化不了。…/Xcode/iOS DeviceSupport—— 下次插上设备会重新下载。安全,但代价是「现在就能调试」变成「下载几个 G 之后再调试」。…/Xcode/UserData—— 代码片段、断点、快捷键绑定。这是配置,不是缓存。~/Library/Application Support/MobileSync/Backup—— iPhone / iPad 本机备份,用户数据。~/Library/Containers与~/Library/Group Containers—— 应用数据。- Docker / OrbStack 卷 —— 容器数据,不是构建产物。
/Library/Caches—— 系统级,需要管理员权限,删了可能让正在运行的程序出问题。
手动清怎么做
先量,再删:
du -sh ~/Library/Developer/Xcode/DerivedData 2>/dev/null
du -sh ~/Library/Caches/go-build ~/.gradle/caches ~/.npm/_cacache 2>/dev/null
然后只删你确实要腾出空间的那几个:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
rm -rf ~/Library/Caches/go-build/*
两个没人提醒、但一定会踩的坑:删 DerivedData 之前先退出 Xcode(正在编译会持续往里写);任何缓存在对应工具运行期间都不要删。
为什么我们「先隔离,再删除」
缓存原则上可以随便删。真正会出事的,是那条规则在你的环境里恰好不成立的情况:某个项目钉住了旧缓存、某个工具把状态也放在里面、某个你以为不是归档的归档。
所以应用第一遍从不删除。它先测量,把内容移进隔离区,然后开始 30 天倒计时。这段时间里一旦有东西坏了,一键还原。窗口过去之后才会真正删除,而且永久删除默认关闭,必须同时满足六个条件——差一个就中止。
实际能清出多少
对一个经常使用的 iOS 项目,DerivedData 通常单项最大(5–50 GB)。Node 与 Rust 缓存常在 1–10 GB;Gradle 和 Go 一般几 GB。如果你的总计不到 1 GB,那清理并不是你的磁盘问题——存储面板会告诉你真正占地方的是什么。
先看清空间去哪了。 DisplayPilot 的存储面板按类别拆解磁盘占用、指出这 13 类里哪些值得清,并且一律先隔离 30 天再删除。14 天试用功能完整,不需要注册账号。
← 返回首页