# 解除安裝 Mac 上的 Xcode，留下還需要的工具和封存

> 分開處理 Xcode、Command Line Tools 和模擬器，保留發佈封存與簽署資料，再核對 Homebrew 和剩餘建置。

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

解除安裝 Xcode 前，先分清是以後不再做 Apple 平台開發，還是只想移除體積很大的編輯器，Xcode App、獨立安裝的 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/tw/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)指出，重新下載描述檔無法復原遺失的簽署私密金鑰，不要把 App 解除安裝變成鑰匙圈和簽署資料的大清理。

## 先移除 Xcode App

完成建置和測試，結束 Xcode 和 Simulator，再找到這次確實要移除的 Xcode，按 Apple 的 [Finder 移除步驟](https://support.apple.com/en-us/102610)把它移到垃圾桶。如果裝了多個版本，先核對實際安裝位置，不要把名稱相近的 App 一起刪掉。

確認保留的工具能正常使用之前，讓 App 留在垃圾桶裡，只有它還在那裡時才能放回，之後重新安裝需要相容版本和可用下載，永久刪除前空間還沒釋放，不要把可用空間沒變化誤判成移動失敗。

## 分開決定 Command Line Tools 的去留

Apple 的[開發目錄選擇說明](https://developer.apple.com/documentation/xcode/configuring-command-line-tools-settings)提供這個唯讀檢查。

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

回傳 Xcode 內的開發目錄，表示目前命令列工具來自那個 App，回傳 `/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/tw/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。

先核對選取的開發目錄，再試一個以後還要用的代表性建置，失敗就讀錯誤訊息，分清缺工具還是缺專案依賴項目，不急著重新安裝或繼續刪除，通過之前保留可以復原的 App。

## 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/tw/blog/how-to-uninstall-xcode-mac
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
