AskCleanAskClean问净

如何在 Mac 上彻底卸载 Xcode,并保留项目与 dSYM

AskClean 团队 · 更新于 2026-09-01

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

卸载 Xcode 前分开整理项目、归档与模拟器数据的 Mac 开发桌面
先把源码、发布凭证和模拟器状态从可重建缓存中分开,再卸载 Xcode。

卸载前先盘点 Xcode 数据

Xcode.app 只是 IDE 本体。用户目录里还可能有 DerivedData、Archives、真机符号、模拟器 runtime、模拟设备状态、文档和日志。源码项目通常在另一个工作目录,绝不是卸载残留。

先退出 Xcode 和模拟器,提交或备份所有项目,记录 Archives 和模拟器用途。运行 xcode-select -p、xcrun simctl list runtimes 与 xcrun simctl list devices,分别测量各类别,不要先用 sudo 或递归删除。

  1. 记录并验证项目与 workspace 的备份位置。
  2. 在 Window > Organizer > Archives 中找出仍在分发的版本。
  3. 运行 xcode-select -p 查看当前开发目录。
  4. 列出 simulator runtime 和 device。
  5. 分别测量 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 runtimesXcode 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 快照仍可能占用空间。

参考来源

相关开发储存任务