如何在 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
- 退出 Xcode。
- 打开 Finder 并按下 Shift + Command + G。
- 粘贴:
~/Library/Developer/Xcode/DerivedData - 删除内容(或整个文件夹)。Xcode 将重新创建它。
或者,在 Xcode 中:设置 → 位置 → Derived Data 并点击箭头在 Finder 中打开该文件夹。
删除旧归档
归档文件位于:
~/Library/Developer/Xcode/Archives
每个带日期的文件夹都是一个 Xcode 归档。删除您不再需要发布或调试的旧版本归档。如果您仍然需要符号化来自这些构建的崩溃日志,请保留最近的归档。
精简模拟器运行时
- 打开 Xcode → 设置 → 平台(或旧版 Xcode 上的 组件)。
- 删除您不再使用的 iOS/watchOS/tvOS 运行时。
您也可以删除 ~/Library/Developer/CoreSimulator 下的数据 — 但最好首先通过 Xcode 删除平台,以避免破坏活动项目。
SwiftPM 和 CocoaPods
- SwiftPM:
~/Library/Caches/org.swift.swiftpm下的检出和项目.build文件夹。 - CocoaPods:
Pods文件夹可以通过pod install重新生成。
如果您不确定,请在删除项目内的大文件夹之前进行备份或使用版本控制。
使用 NythyCleaner 自动化 Xcode 清理
NythyCleaner 包含一个开发者 / Xcode 部分,它会扫描常见的开发者路径,总结每个类别占用的空间量,并允许您在一个工作流程中清理它们。您可以将其与以下功能结合使用:
安全检查清单
- 在删除 DerivedData 或大型模拟器数据之前关闭 Xcode。
- 除非您有意为之,否则不要删除您的
~/Developer或项目文件夹。 - 如果您仍然需要上传或调试匹配的构建版本,请保留最近的 App Store 归档。
总结
| 位置 | 典型内容 | 可安全删除? |
|---|---|---|
| DerivedData | 构建输出、索引 | 是(可重建) |
| 归档 (Archives) | IPA/IPA 相关归档 | 是,如果已过时 |
| 模拟器 (Simulators) | 运行时镜像 | 是,未使用的运行时 |
| SwiftPM 缓存 | 依赖项、构建 | 通常是 |
定期清理 Xcode 缓存可以保持 SSD 快速运行,并避免在构建过程中出现意外的“磁盘已满”错误。