# 清理 Xcode 而不丟失發行產物

> 在刪除 Xcode 佔用前，先分清 DerivedData、模擬器裝置、執行時期、DeviceSupport 與發行封存。

Published: 2026-07-12 | Updated: 2026-09-05

Xcode 的空間分散在建置輸出、索引、封存、裝置支援、模擬器裝置與平台執行環境中。有些可以重建，有些卻是已發布版本封存與 dSYM 的唯一副本。清理前應分別測量，並盡量透過 Xcode 管理。

## 先看空間花在哪裡

先從使用者層級的兩個主要目錄開始：

```
du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h
```

常見大項包括：

- **DerivedData：** 建置產物、索引和模組快取，通常每個專案一個目錄。可以重建，但全部清空會讓之後的索引和建置變慢
- **DeviceSupport：** 從實體裝置和特定系統版本收集的符號與支援資料，舊項目仍可能用於當機符號化
- **Archives：** 匯出或發布 App 時保存的建置。已發佈版本的封存包含對應的二進位檔與 dSYM，之後分析當機仍會用到。從未離開本機的封存較適合清理
- **模擬器裝置與執行環境：** 裝置紀錄位於 CoreSimulator，執行環境由 Xcode 元件管理，它們不是同一種快取

## 分類別清理

**DerivedData** 適合按專案處理。結束 Xcode，透過「Xcode > 設定 > 位置」開啟 Derived Data，找出不用的專案目錄並移到垃圾桶。只有全域索引或建置故障明確需要時，才清空全部內容。

刪除執行環境已經不可用的模擬器裝置前，先確認其中沒有需要保留的測試資料，並停止模擬器與相關測試工作；以下指令會刪除裝置及其資料，不經過垃圾桶：

```
xcrun simctl delete unavailable
```

這只刪除裝置紀錄，不會解除安裝執行環境映像。透過「Xcode > 設定 > 元件」查看已安裝平台、執行環境和可回收大小，再移除能夠重新下載的項目。Apple 的 [Xcode 元件說明](https://developer.apple.com/documentation/xcode/downloading-and-installing-additional-xcode-components)記錄了這條受管理的路徑。裝置紀錄則在「視窗 > 裝置與模擬器」中管理。

在「視窗 > Organizer」中檢查封存。對已經發佈、仍可能收到當機報告的建置，封存和 dSYM 還有實際價值。Apple 的[除錯資訊說明](https://developer.apple.com/documentation/xcode/building-your-app-to-include-debugging-information)也提到，二進位檔與 dSYM 只有建置 UUID 相符時才能配合使用。DeviceSupport 同樣更適合逐項檢查，整目錄清空會丟掉特定系統版本的符號資料。

移動 DerivedData 前先結束 Xcode，並停止命令列建置與測試，避免索引或建置資料庫正在寫入。下次開啟專案時，Xcode 會重新索引、解析相依性並產生輸出，所需時間取決於專案和本機輸入。

## 哪些內容能重建

DerivedData 根據原始碼、設定、工具鏈和相依性產生，包含目標檔、模組快取、索引和建置產物。輸入仍然存在時可以重建，代價是時間和可能的網路下載。

DeviceSupport 是除錯實體裝置時保存的特定系統支援與符號資料。模擬器裝置和執行環境也是獨立的受管理物件。Archives 更需要保留，因為其中的 dSYM 可能是符號化線上當機的唯一相符檔案。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/xcode-storage-map.webp" width="1360" height="454" loading="lazy" alt="Xcode 開發者目錄分為可重建快取，包括 DerivedData 和模組快取，以及擷取產物，包括 DeviceSupport、Archives 與模擬器。">
  <figcaption>DerivedData 可以重建，Archives、dSYM 和部分裝置支援資料可能長期有用。</figcaption>
</figure>

## 磁碟地圖能幫上什麼

[Mole](https://mole.fit/tw/) 的「分析」頁可以確認空間主要來自 DerivedData、CoreSimulator 還是 Archives。實際移除仍交給 Xcode 的「元件」「裝置」和 Organizer，這些入口理解執行環境、裝置與發布產物。

## 安全的清理順序

停止建置後，可以分別測量 Xcode 與 CoreSimulator，從不用專案的 DerivedData、不可用模擬器裝置和閒置執行環境開始。封存則需要與已發布版本及符號化需求逐一核對，重新開啟一個重要專案並完成建置，也能在清空垃圾桶前驗證環境是否完整。

---

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