# 卸载 Mac 上的 Xcode，留下还需要的工具和归档

> 分开处理 Xcode、Command Line Tools 和模拟器，保留发布归档与签名资料，再核对 Homebrew 和剩余构建。

Published: 2026-07-02 | Updated: 2026-10-31

卸载 Xcode 前，先分清是以后不再做 Apple 平台开发，还是只想移除体积很大的编辑器，Xcode 应用、单独安装的 Command Line Tools、模拟器运行时和发布归档是不同的东西。一起删除，可能让原本能用的构建环境失效，也可能丢掉以后还需要的符号文件。

## 先决定哪些要留下

Apple 的 [Command Line Tools 文档](https://developer.apple.com/documentation/xcode/installing-the-command-line-tools)区分了独立工具包和 Xcode 内的工具，后续工作还需要命令行构建时，可以保留独立工具包，但它不提供所有 Xcode 命令。

| 项目 | 删除前确认什么 | 怎么恢复 |
| --- | --- | --- |
| Xcode.app | 留下仍需使用的其他 Xcode 版本 | 从废纸篓放回，或重装兼容版本 |
| 独立 Command Line Tools | 后续命令行构建是否需要它 | 重新安装兼容工具包 |
| 模拟器设备和运行时 | 留下测试数据和需要覆盖的系统版本 | 重新下载运行时，已擦除的设备状态需要备份 |
| DerivedData 和缓存 | 源码和依赖是否仍可获得 | 重新构建和索引 |
| 归档和签名资料 | 留下已分发构建和需要的签名材料 | 从核验过的备份恢复，重新构建不能代替 |

如果只是想减少占用，先看 [Xcode 存储清理指南](https://mole.fit/zh/blog/how-to-clean-up-xcode-mac)，里面讲的是保留编辑器、按项处理缓存。

## 留下归档和签名资料

移除 Xcode 前，先在 Organizer 查看归档，把需要的构建复制到独立存储，Apple 的[归档指南](https://help.apple.com/xcode/mac/current/en.lproj/devf37a1db04.html)说明了归档用于分发，常见的 [Archives 位置](https://help.apple.com/xcode/mac/current/en.lproj/deva52afe8a4.html)也是 Mole 明确排除在缓存清理之外的目录。

```text
~/Library/Developer/Xcode/Archives
```

已经分发的构建，要连同匹配的 dSYM 一起保留，Apple 的[调试信息说明](https://developer.apple.com/documentation/xcode/building-your-app-to-include-debugging-information)要求二进制和 dSYM 的构建 UUID 匹配，所以重新编译源码不能替代那份符号文件。

还在使用的描述文件和签名身份也要留下，Apple 的[签名资料备份说明](https://help.apple.com/xcode/mac/current/en.lproj/dev8a2822e0b.html)指出，重新下载描述文件无法恢复丢失的签名私钥，不要把应用卸载变成钥匙串和签名资料的大清理。

## 先移除 Xcode 应用

完成构建和测试，退出 Xcode 和 Simulator，再找到这次确实要移除的 Xcode，按 Apple 的[访达移除步骤](https://support.apple.com/en-us/102610)把它移到废纸篓。如果装了多个版本，先核对实际安装位置，不要把名字相近的应用一起删掉。

确认保留的工具能正常用之前，让应用留在废纸篓里，只有它还在那里时才能放回，之后重装需要兼容版本和可用下载，永久删除前空间还没释放，不要把可用空间没变化误判成移动失败。

## 单独决定 Command Line Tools 的去留

Apple 的[开发目录选择说明](https://developer.apple.com/documentation/xcode/configuring-command-line-tools-settings)给出了这个只读检查。

```sh
xcode-select --print-path
```

返回 Xcode 内的开发目录，表示当前命令行工具来自那个应用，返回 `/Library/Developer/CommandLineTools` 表示选中了独立工具包，报错则表示没有活动开发目录，不是项目源码消失了。

如果需要独立工具包但还没安装，用 `xcode-select --install` 请求安装并完成安装，只有确认目录存在后，再选择它。

```sh
sudo xcode-select --switch /Library/Developer/CommandLineTools
xcode-select --print-path
```

第二条命令应该返回独立工具包路径，以后想切回去，按 Apple 的同一套步骤选择实际保留的 Xcode，切换路径不会替你安装缺失工具。

如果后续工作都不需要独立工具包，Apple 在安装文档里给出了移除 `/Library/Developer/CommandLineTools` 的步骤，确认不再需要才按那个精确路径处理，这是直接删除，不经过废纸篓，不要连更大的 `/Library/Developer` 一起删。

## 模拟器和缓存另行处理

移除最后一个 Xcode 前，先按 Apple 的[组件管理说明](https://developer.apple.com/documentation/xcode/downloading-and-installing-additional-xcode-components)检查不用的运行时，当前文档把这个设置面板称为 **Components**，运行时和使用它的虚拟设备要分别判断，具体操作见 [iOS 模拟器清理指南](https://mole.fit/zh/blog/how-to-clean-up-ios-simulator-mac)。

DerivedData 和缓存按前面的 Xcode 存储指南处理，只针对确认过的构建输出，重新生成需要源码、依赖和相应工具链，Archives 和描述文件不在这次清理里，也不要为了卸载收尾就删除整棵 Developer 目录。

## 核对 Homebrew 和剩余构建

Homebrew 的[安装要求](https://docs.brew.sh/Installation)列出，从源码构建 formula 需要 Command Line Tools 或 Xcode，所以即使不再打开 Xcode，独立工具包也可能仍有用，但需要 `xcodebuild` 这类 Xcode 专属工具的流程，不能靠它替代完整 Xcode。

先核对选中的开发目录，再试一个以后还要用的代表性构建，失败就读报错，分清缺工具还是缺项目依赖，不急着重装或继续删除，通过之前保留可以恢复的应用。

## Mole 会做什么

Mole Mac 的**软件**允许移除 Xcode，并为它显示数据确认提示，这是提醒你检查勾选的数据，不代表关联目录都能丢弃。

在**清理**里，Mole 的开发缓存目录表排除了 Xcode Archives，内置白名单也包含 Archives 路径，这个保护不等于归档和签名资料的备份，卸载前仍要单独保存。

## 常见问题

### 卸载 Xcode 后还能用 Homebrew 吗？

可以，Homebrew 构建需要工具时，留下或安装兼容的 Command Line Tools，再检查开发目录和一个自己实际会用的构建。

### 删除 Xcode.app 会删掉全部模拟器吗？

不要这样假设，移除最后一个 Xcode 前，按组件和模拟器指南分别核对下载的运行时与设备数据。

### 留着源码就能删 Archives 吗？

已经分发的构建要保留归档和匹配符号，重新构建不保证 UUID 相同，重装 Xcode 也不能恢复旧签名私钥。

---

Canonical HTML page: https://mole.fit/zh/blog/how-to-uninstall-xcode-mac
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
