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

注意每一行的共同点:工具不需要问你任何事就能把它重新生成出来。这就是全部的判据。

看起来像缓存、其实不是的东西

手动清怎么做

先量,再删:

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 天试用功能完整,不需要注册账号。

下载 macOS 版

← 返回首页