如何在 Mac 上彻底卸载 Xcode,并保留项目与 dSYM
AskClean 团队 · 更新于 2026-09-01
彻底卸载 Xcode 前,先保护源码项目和仍用于线上版本的 Archives/dSYM。然后把 Xcode 移入废纸篓,分别检查 DerivedData、模拟器、DeviceSupport 和命令行工具。安全做法不是删除整个 Library/Developer,而是按每类数据的恢复成本逐项决定。

卸载前先盘点 Xcode 数据
Xcode.app 只是 IDE 本体。用户目录里还可能有 DerivedData、Archives、真机符号、模拟器 runtime、模拟设备状态、文档和日志。源码项目通常在另一个工作目录,绝不是卸载残留。
先退出 Xcode 和模拟器,提交或备份所有项目,记录 Archives 和模拟器用途。运行 xcode-select -p、xcrun simctl list runtimes 与 xcrun simctl list devices,分别测量各类别,不要先用 sudo 或递归删除。
- 记录并验证项目与 workspace 的备份位置。
- 在 Window > Organizer > Archives 中找出仍在分发的版本。
- 运行 xcode-select -p 查看当前开发目录。
- 列出 simulator runtime 和 device。
- 分别测量 DerivedData、Archives、DeviceSupport 和 CoreSimulator。
移除 Xcode.app 不会删除其他位置的源码;把项目目录误当残留删除才会。
先保护 Archives、dSYM 和模拟器状态
Archives 可能包含线上构建和用于符号化崩溃的 dSYM,不是普通缓存。仍在 App Store、TestFlight、企业或客户环境使用的版本应保留,除非已经验证符号在其他位置可恢复。
DeviceSupport 通常可在设备重新连接后生成,但有时间成本;模拟设备还可能保存测试数据库、登录状态和截图。默认保留仍认识的归档、当前设备支持和有价值的模拟器状态。
通过访达移除 Xcode 本体
在「应用程序」中确认 Xcode 版本后移入废纸篓;多个 Xcode 或 Beta 版本要分别处理。不要直接 rm -rf,这样在清空废纸篓前仍有恢复窗口。
不要顺手删除 /Library/Developer/CommandLineTools。Git、Homebrew、编译器和构建脚本即使没有完整 Xcode 也可能依赖它。只有确认所有相关工作流都不再需要时,才单独处理命令行工具。
分别清理可重建缓存
DerivedData 风险最低,删除后只需重新索引和构建。Xcode 缓存与文档缓存也可重建,但下次使用会更慢。退出 Xcode 后,每次只把一个明确缓存目录移入废纸篓并重新测量。
不要删除整个 ~/Library/Developer:它同时包含缓存、归档、真机支持与模拟器状态。
单独决定 runtime 和 simulator device
runtime 是可重新下载的系统镜像;simulator device 是带有 App 数据和状态的实例。删除前者主要损失下载时间,删除后者可能丢失本地测试数据。
优先使用 Xcode 的 Platforms 设置或 simctl 处理,不要在 CoreSimulator 中手工删除随机 UUID 目录。
清空废纸篓前验证
检查是否还有其他 Xcode 副本和运行中的进程,再运行 xcode-select -p。路径仍指向已移除的 Xcode 时,需要重新选择开发目录;指向 CommandLineTools 则说明命令行工具被有意保留。
对比卸载前后的分类大小,确认项目、Archives 和 dSYM 仍在,再清空废纸篓。AskClean 会把可重建缓存和受保护开发资产分开,适合多版本 Xcode 或多年开发数据混杂的情况。
Xcode 卸载安全表
| 项目 | 常见位置 | 安全决策 |
|---|---|---|
| 源码项目 | 用户自选工作目录 | 保留;源码、资源、本地包和未推送工作不是残留。 |
| Archives 与 dSYM | ~/Library/Developer/Xcode/Archives | 先确认;保留仍需崩溃分析的线上版本符号。 |
| DerivedData | ~/Library/Developer/Xcode/DerivedData | 可重建;下次索引和构建会变慢。 |
| Simulator runtimes | Xcode Platforms / CoreSimulator | 可重下;使用 Xcode 或 simctl 移除。 |
| Simulator devices | ~/Library/Developer/CoreSimulator/Devices | 先确认;可能丢失本地测试数据和状态。 |
| Command Line Tools | /Library/Developer/CommandLineTools | 默认保留;Git、Homebrew 或编译器仍可能使用。 |
常见问题
卸载 Xcode 会删除项目吗?
把 Xcode.app 移入废纸篓不会删除其他位置的项目。危险来自把工作目录、Documents、仓库或自定义构建目录误当成残留。
可以删除整个 ~/Library/Developer 吗?
不可以。这里混合了 DerivedData、Archives/dSYM、DeviceSupport、runtime 和模拟器状态,必须按子类别判断。
Command Line Tools 也要删除吗?
默认不要。Git、clang、make、Homebrew 和多种开发工具可能仍依赖它。
为什么删掉 Xcode 后系统数据仍很大?
Xcode.app 只是其中一部分;Archives、DerivedData、CoreSimulator、DeviceSupport、包管理缓存或 APFS 快照仍可能占用空间。
参考来源