NythyCleaner
← 博客

如何在 Mac 上清理 Xcode 缓存 (DerivedData, Archives, Simulators)

10 分钟阅读
#xcode#macos#developer#derived-data#cleanup

如何在 Mac 上清理 Xcode 缓存 (DerivedData, Archives, Simulators)

如果您构建 iOS 或 macOS 应用程序,Xcode 是最快消耗磁盘空间的方式之一。DerivedData归档 (Archives)模拟器 (simulators)SwiftPM 缓存可能会在存储概览中不知不觉地增长到数十 GB。

本指南解释了每个文件夹的作用、您可以安全删除哪些内容以及如何自动化清理。有关更广泛的存储策略,请参阅如何在 Mac 上释放磁盘空间

为什么 Xcode 占用如此多空间

Xcode 存储了几种独立类别的数据:

  • DerivedData — 中间构建产品、索引和模块缓存。可安全删除;Xcode 将在下次编译时重建。
  • 归档 (Archives) — 用于 App Store Connect 和 Ad-hoc 分发的发布版本。旧的归档文件经常被遗忘。
  • 模拟器 (Simulators) — 完整的设备运行时镜像。删除未使用的运行时可恢复大量空间。
  • SwiftPM.build 下的检出和构建工件以及 SwiftPM 缓存。
  • 设备支持 (Device support) — 连接的 iOS 设备的符号;如果您不再测试那些 OS 版本,可以删除旧版本。

这些都不是“您的源代码”。它们是可重现的工件,因此删除它们通常风险较低。

手动清理 DerivedData

  1. 退出 Xcode。
  2. 打开 Finder 并按下 Shift + Command + G
  3. 粘贴:~/Library/Developer/Xcode/DerivedData
  4. 删除内容(或整个文件夹)。Xcode 将重新创建它。

或者,在 Xcode 中:设置 → 位置 → Derived Data 并点击箭头在 Finder 中打开该文件夹。

删除旧归档

归档文件位于:

~/Library/Developer/Xcode/Archives

每个带日期的文件夹都是一个 Xcode 归档。删除您不再需要发布或调试的旧版本归档。如果您仍然需要符号化来自这些构建的崩溃日志,请保留最近的归档。

精简模拟器运行时

  1. 打开 Xcode → 设置 → 平台(或旧版 Xcode 上的 组件)。
  2. 删除您不再使用的 iOS/watchOS/tvOS 运行时。

您也可以删除 ~/Library/Developer/CoreSimulator 下的数据 — 但最好首先通过 Xcode 删除平台,以避免破坏活动项目。

SwiftPM 和 CocoaPods

  • SwiftPM~/Library/Caches/org.swift.swiftpm 下的检出和项目 .build 文件夹。
  • CocoaPodsPods 文件夹可以通过 pod install 重新生成。

如果您不确定,请在删除项目内的大文件夹之前进行备份或使用版本控制。

使用 NythyCleaner 自动化 Xcode 清理

NythyCleaner 包含一个开发者 / Xcode 部分,它会扫描常见的开发者路径,总结每个类别占用的空间量,并允许您在一个工作流程中清理它们。您可以将其与以下功能结合使用:

  • 磁盘空间 — 树状图视图,查看 Xcode 之外的空间占用情况。
  • 系统清理 — Xcode 旁边累积的缓存和日志。

安全检查清单

  • 在删除 DerivedData 或大型模拟器数据之前关闭 Xcode。
  • 除非您有意为之,否则不要删除您的 ~/Developer 或项目文件夹。
  • 如果您仍然需要上传或调试匹配的构建版本,请保留最近的 App Store 归档。

总结

位置典型内容可安全删除?
DerivedData构建输出、索引是(可重建)
归档 (Archives)IPA/IPA 相关归档是,如果已过时
模拟器 (Simulators)运行时镜像是,未使用的运行时
SwiftPM 缓存依赖项、构建通常是

定期清理 Xcode 缓存可以保持 SSD 快速运行,并避免在构建过程中出现意外的“磁盘已满”错误。