Xcode

Xcode 的 DerivedData 和 DeviceSupport:最常见的隐藏巨头

Xcode 会在构建产物和模拟器/设备支持文件里悄悄累积几十 GB。本文讲清楚它为什么膨胀,以及如何在不影响当前项目的前提下清理。

更新于:

阅读时长: 6 分钟

为什么会悄悄变大

每次构建都会生成中间产物、索引和调试数据。你切换分支、切换 SDK、连接不同系统版本真机后,这些目录会持续增长。尤其是模拟器运行时和 DeviceSupport,常常按系统版本叠加,体积非常可观。

Free Mac Space 如何定位

Free Mac Space 会扫描 Xcode 专属路径,例如 ~/Library/Developer/Xcode/DerivedData、~/Library/Developer/Xcode/Archives、~/Library/Developer/Xcode/iOS DeviceSupport、~/Library/Developer/CoreSimulator,以及 Xcode 缓存目录,并按体积排序展示最占空间的位置。

Free Mac Space 如何帮助清理

你可以先看路径、大小和修改时间,再决定是否勾选。可清理条目会被移动到回收站,而不是永久删除。若路径校验失败或不在允许根目录内,清理会被阻止并写入审计记录。

安全边界

发布归档(Archives)可能是线上版本回溯所需文件。Free Mac Space 不会替你自动删除,而是要求你逐项确认,并把操作记录到本地审计日志中。

Free Mac Space 扫描路径

  • ~/Library/Developer/Xcode/DerivedData
  • ~/Library/Developer/Xcode/Archives
  • ~/Library/Developer/Xcode/iOS DeviceSupport
  • ~/Library/Developer/CoreSimulator
  • ~/Library/Caches/com.apple.dt.Xcode

建议的月度检查步骤

  • 先按体积排序,优先处理久未更新的 DerivedData。
  • 保留与线上发布相关的最新 Archives。
  • 清理后重新扫描,确认空间已按预期回收。

操作步骤(HowTo)

  1. 1. 识别 Xcode 的增长来源

    每次构建都会生成中间产物、索引和调试数据。你切换分支、切换 SDK、连接不同系统版本真机后,这些目录会持续增长。尤其是模拟器运行时和 DeviceSupport,常常按系统版本叠加,体积非常可观。

  2. 2. 确认扫描覆盖路径

    Free Mac Space 会扫描 Xcode 专属路径,例如 ~/Library/Developer/Xcode/DerivedData、~/Library/Developer/Xcode/Archives、~/Library/Developer/Xcode/iOS DeviceSupport、~/Library/Developer/CoreSimulator,以及 Xcode 缓存目录,并按体积排序展示最占空间的位置。 重点路径:~/Library/Developer/Xcode/DerivedData、~/Library/Developer/Xcode/Archives、~/Library/Developer/Xcode/iOS DeviceSupport、~/Library/Developer/CoreSimulator、~/Library/Caches/com.apple.dt.Xcode。

  3. 3. 先看安全边界再执行动作

    发布归档(Archives)可能是线上版本回溯所需文件。Free Mac Space 不会替你自动删除,而是要求你逐项确认,并把操作记录到本地审计日志中。

  4. 4. 按先审查后清理流程执行

    你可以先看路径、大小和修改时间,再决定是否勾选。可清理条目会被移动到回收站,而不是永久删除。若路径校验失败或不在允许根目录内,清理会被阻止并写入审计记录。

  5. 5. 复核动作 1

    先按体积排序,优先处理久未更新的 DerivedData。

  6. 6. 复核动作 2

    保留与线上发布相关的最新 Archives。

  7. 7. 复核动作 3

    清理后重新扫描,确认空间已按预期回收。

常见问题

  • Xcode 这类占用通常来自哪里?

    主要来源包括:DerivedData、Archives、iOS DeviceSupport、CoreSimulator。每次构建都会生成中间产物、索引和调试数据。你切换分支、切换 SDK、连接不同系统版本真机后,这些目录会持续增长。尤其是模拟器运行时和 DeviceSupport,常常按系统版本叠加,体积非常可观。

  • 这篇文章建议重点查看哪些路径?

    建议优先检查这些路径:~/Library/Developer/Xcode/DerivedData、~/Library/Developer/Xcode/Archives、~/Library/Developer/Xcode/iOS DeviceSupport、~/Library/Developer/CoreSimulator、~/Library/Caches/com.apple.dt.Xcode。Free Mac Space 会扫描 Xcode 专属路径,例如 ~/Library/Developer/Xcode/DerivedData、~/Library/Developer/Xcode/Archives、~/Library/Developer/Xcode/iOS DeviceSupport、~/Library/Developer/CoreSimulator,以及 Xcode 缓存目录,并按体积排序展示最占空间的位置。

  • 如何在不增加误删风险的前提下处理?

    你可以先看路径、大小和修改时间,再决定是否勾选。可清理条目会被移动到回收站,而不是永久删除。若路径校验失败或不在允许根目录内,清理会被阻止并写入审计记录。 发布归档(Archives)可能是线上版本回溯所需文件。Free Mac Space 不会替你自动删除,而是要求你逐项确认,并把操作记录到本地审计日志中。

  • 月度复查时应该怎么执行?

    先按体积排序,优先处理久未更新的 DerivedData。;保留与线上发布相关的最新 Archives。;清理后重新扫描,确认空间已按预期回收。

继续执行对应方案

如果你已完成阅读,可直接进入「Xcode 缓存清理(DerivedData / DeviceSupport)」按步骤执行。

查看对应场景方案

更多隐蔽占用案例

Docker

Docker Desktop 虚拟磁盘:项目结束了,空间却还在涨

Docker 镜像层、构建缓存和 VM 磁盘文件都在受管目录中,平时不容易在 Finder 里看清楚,但体积会增长得很快。

阅读文章

Homebrew

Homebrew 缓存目录:安装很快,历史缓存更快变大

Homebrew 会保留下载包和元数据缓存,版本升级后仍可能长期存在,是非常典型的“看不见但可安全处理”的空间来源。

阅读文章

JavaScript 工具链

npm / pnpm / Yarn / Bun 缓存:多项目机器上的隐形重复占用

包管理器为了加速安装会积极缓存。在多项目、多工具链并存的 Mac 上,即使项目删掉了,缓存也可能持续占用大量空间。

阅读文章