Xcode 存储

如何安全清理 Xcode DerivedData

DerivedData 是 Xcode 存放构建产物和索引的地方,里面的东西 Xcode 都能重新生成。只要 Xcode 和正在跑的构建都停了,就可以删,只是下次构建和索引会慢一些。Xcode Archives 和你的项目文件夹别动,它们放在别处,删了就回不来。

DerivedData 在哪里

默认位置是 ~/Library/Developer/Xcode/DerivedData,每个项目或 workspace 各占一个文件夹。文件夹名以项目名开头,后面跟一串随机字符,很好区分。也可以在 Xcode 里打开“设置”,进入“Locations”,点 DerivedData 路径旁边的小箭头直接打开。

Archives 就在隔壁的 ~/Library/Developer/Xcode/Archives。里面是你导出过的构建,还有读懂这些构建崩溃报告所需的符号文件,所以不要把它们算进这次清理。

手动删除

如果只是某个项目出了毛病,删掉这个项目对应的文件夹就行。如果是想腾空间,就按日期排序,把很久没打开过的项目文件夹删掉。

  1. 等正在跑的构建、测试和预览结束,然后退出 Xcode。
  2. 打开 DerivedData 文件夹,看看每个文件夹的名称、日期和大小。
  3. 把挑好的项目文件夹移到废纸篓。
  4. 打开当前项目,等 Xcode 索引和构建完成后,再清空废纸篓。

Mint 能帮你做什么

Mint 的“硬盘”页会把 DerivedData 列在“可重建”下面,拆成多行,方便你按项目挑选。只有 Xcode 和它的构建工具都没在运行时,这些行才会被勾上;正在构建的话,它们会保持不勾。

对于 Mint 勾选的行,按钮是“永久删除”,确认一次就执行。构建产物移到废纸篓,不清空也腾不出空间。同一次扫描还会找出模拟器缓存、包管理器缓存和 node_modules 文件夹。

常见问题

Xcode DerivedData 可以放心删除吗?

可以,只要当时没有构建在进行。Xcode 会重新生成它,代价是下次构建更慢,还要重新索引一遍。

删除 DerivedData 会删掉我的代码吗?

不会,源代码在你的项目文件夹里。删之前核对一下路径,别误选了项目文件夹或 Archives。

App Store 版的 Mint 能清理 DerivedData 吗?

不能。App Store 版访问不到 ~/Library,所以清理 DerivedData 只在 Direct 版和 Setapp 版里提供。

看看你的 DerivedData 有多大

在 Mint 里扫描一次,打开“可重建”,把不再需要的项目文件夹删掉。

扫描开发者文件