開發者磁碟清理

如何安全刪除 Xcode Derived Data:釋放 Mac 儲存空間

了解 Xcode Derived Data 包含哪些內容、何時可以刪除,以及如何只清除單一專案或整個資料夾而不影響原始碼

發布於 2026年8月10日更新於 2026年8月12日作者: Harry
Mac 開發者檢查 Xcode Derived Data 建置資料與磁碟空間使用情形

可以,Xcode Derived Data 通常能安全刪除。預設資料夾裡存放的是 Xcode 可以重新產生的建置成果與索引,刪除後不會影響專案原始碼,但下一次建置和程式碼索引會花比較久的時間。

真正要留意的是刪除範圍:先結束 Xcode,並確認操作的是 ~/Library/Developer/Xcode/DerivedData,不要誤刪 Archives、模擬器裝置資料或專案資料夾。

本文所列路徑與檢查指令已於 2026 年 8 月 10 日在 macOS 15.7.7、Xcode 16.2 上驗證。Xcode 選單位置可能隨版本調整;若你沒有自訂建置位置,預設 Derived Data 路徑與下方的終端機操作仍然適用。

Xcode Derived Data 是什麼?

Xcode 會把建置專案與分析程式碼時產生的檔案放進 Derived Data,常見內容包括:

  • 編譯成果與建置過程中的中間檔案;
  • 用於程式碼導覽、搜尋與自動完成的索引;
  • 記錄檔與其他專案建置輔助資料;
  • 該工作區在本機簽出的 Swift Package 與相關建置資料。

Apple 文件指出,工作區索引位於各自的 Derived Data 目錄;Xcode 版本說明也曾建議在部分建置問題發生時,清除該專案的 Derived Data 作為排除方式。換句話說,這個資料夾的內容原本就應該能夠重新產生,而不是原始碼的唯一來源。

遇到下列情況時,可以考慮清除:

  • 已不再使用的舊專案留下數 GB 的產生資料;
  • 建置時反覆使用過期的結果;
  • 程式碼自動完成或索引運作異常;
  • 更新 Xcode 後,Package 或 Macro 建置失敗;
  • 需要釋放磁碟空間,而且可以接受第一次重建較慢。

不要只因為 Derived Data 存在就定期清空。開發中的專案會利用增量建置資料縮短編譯時間;若資料夾不大、運作也正常,刪除它只會用建置時間交換少量磁碟空間。

哪些內容可以安全刪除?

位置建議刪除後的影響
~/Library/Developer/Xcode/DerivedData/ProjectName-*可刪除你能確認的單一專案資料該專案需要重新建置與建立索引
~/Library/Developer/Xcode/DerivedData 內的所有內容需要完整重設時可以清除所有 Xcode 專案都需要重新建置與建立索引
~/Library/Developer/Xcode/Archives不要當成快取刪除可能失去用於發佈或當機分析的封存檔,以及對應的除錯符號
~/Library/Developer/CoreSimulator/Devices請另外逐項檢查可能失去模擬器中的應用程式、設定與測試資料
Git 儲存庫或專案資料夾不要刪除這裡才是實際的原始碼與專案設定

清除前也請先查看 Xcode 的 Settings → Locations。如果 Derived Data 設為 Custom,請使用畫面上顯示的位置,不要直接套用預設路徑。

方法一:使用 Finder 清除 Derived Data

如果想在刪除前先看清楚各個專案資料夾,使用 Finder 最直觀。

  1. 儲存工作,並停止正在執行的建置或測試。
  2. 開啟 Xcode → Settings → Locations
  3. 找到 Derived Data,按一下路徑旁的箭頭,在 Finder 中顯示該資料夾。
  4. 結束 Xcode。
  5. 只將有問題或已不再使用的專案資料夾移到垃圾桶。若要完整重設,再移動 Derived Data 資料夾內的所有內容。
  6. 重新開啟 Xcode 並再次建置專案。

先移到垃圾桶,可以保留短暫的復原機會。確認專案能正常開啟並重新建置後,再清空垃圾桶。

方法二:使用終端機檢查與清除

先確認資料夾及其佔用的總空間:

du -sh "$HOME/Library/Developer/Xcode/DerivedData"
du -sh "$HOME/Library/Developer/Xcode/DerivedData"/* 2>/dev/null | sort -h

每個專案資料夾通常會以可辨識的專案名稱開頭,後面接著一段唯一識別字串。可以先在 Finder 中開啟檢查:

open "$HOME/Library/Developer/Xcode/DerivedData"

若要永久刪除單一專案,請將範例資料夾名稱換成你在輸出結果中看到的完整名稱:

rm -rf "$HOME/Library/Developer/Xcode/DerivedData/YourProject-xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

若要永久刪除預設 Derived Data 資料夾內的所有項目:

find "$HOME/Library/Developer/Xcode/DerivedData" \
  -mindepth 1 -maxdepth 1 -exec rm -rf {} +

這些指令不會經過垃圾桶。按下 Return 前,務必再看一次完整路徑;如果 Xcode 正在建置、測試或建立索引,請不要執行最後一段指令。

方法三:先試試 Clean Build Folder

如果只有一個專案出現建置問題,且不需要連同索引及其他工作區資料一起刪除,可以先在 Xcode 中執行 Product → Clean Build Folder。Apple 也將這個操作列為疑難排解方式之一。

工作區對應的指令可能如下:

xcodebuild \
  -workspace YourApp.xcworkspace \
  -scheme YourApp \
  clean

這個做法的範圍比刪除整個 Derived Data 資料夾小。它只會要求目前選取的建置系統清除該專案的建置成果,不是針對所有 Xcode 工作區的磁碟清理指令。

清除後會發生什麼事?

第一次建置通常會比較慢。Xcode 必須重新建置各個 target、建立索引,還可能需要再次解析或下載 Package 資料。在索引完成前,程式碼自動完成與跳至定義也可能暫時不完整。

專案檔案、Git 歷史記錄、簽署憑證、Provisioning Profile 和 Xcode Archives 都不在預設的 Derived Data 根目錄中。只刪除本文說明的確切路徑,就不會影響這些內容。

如果完整重建後原本的錯誤再次出現,問題根源很可能不是 Derived Data。此時應查看第一個有意義的編譯錯誤、套件相依性解析、目前使用的 Xcode 版本與專案 Build Settings,而不是反覆清除快取。

使用 MangoDisk 檢查 Xcode Derived Data

如果希望先確認大小與確切位置,再決定是否清除,MangoDisk 深度清理包含專門處理 Xcode Derived Data 的規則。

這項規則刻意將範圍限制得很明確:只處理預設的 ~/Library/Developer/Xcode/DerivedData 根目錄、要求先關閉 Xcode,而且預設不會選取。它不包含專案原始碼、Archives、簽署資料、模擬器裝置或已安裝的模擬器執行階段。掃描全程在本機進行,清理前也會由你確認結果。完整的確認與清理紀錄流程,請參閱 MangoDisk 安全性指南

常見問題

Xcode 開啟時可以刪除 Derived Data 嗎?

不要在建置、測試或建立索引期間刪除。請先結束 Xcode,避免清理時檔案仍持續寫入。

刪除 Derived Data 能修正所有 Xcode 建置錯誤嗎?

不能。它適合處理過期或狀態不一致的產生資料,但無法修正原始碼錯誤、無效簽署、缺少相依套件或錯誤的建置設定。

多久需要清除一次?

只有在能釋放可觀的磁碟空間,或有跡象顯示建置資料已經異常時,才需要清除。每次建置後都刪除正常的 Derived Data 並沒有好處。

為什麼清除後資料夾又出現了?

這是正常現象。只要再次建置專案或建立索引,Xcode 就會重新建立 Derived Data。清除的目的是移除舊的產生資料,不是停用之後的建置快取。

參考資料

想先以視覺化方式查看開發工具產生的資料,再決定要移除哪些內容?可以下載 MangoDisk,在本機執行深度清理。

Xcode Derived DataXcode 快取macOS開發者磁碟清理
全部文章