Xcode iOS DeviceSupport 可以刪嗎?安全清理指南
AskClean 團隊 · 更新於 2026-07-31
不再用於真機除錯的系統版本,其 DeviceSupport 資料夾可以刪除;當前測試裝置正在使用的版本應當保留。以後再次連線對應裝置時,Xcode 可以重新準備所需支援,因此刪除的代價主要是等待,而不是丟失原始碼。

DeviceSupport 裡面到底是什麼
Xcode 連線並除錯實體 iPhone、iPad、Apple Watch 或 Mac 時,需要理解那台裝置上的系統框架和符號。在安裝過多個 Xcode、連線過多代裝置的 Mac 上,常見位置是 ~/Library/Developer/Xcode/iOS DeviceSupport,以及同級的 macOS DeviceSupport。
這些檔案服務於實體裝置和作業系統除錯。它們不是你的 App 原始碼,不是模擬器裝置,也不是線上 App 對應的 dSYM。這幾類檔案的刪除代價不同,安全清理的第一步就是不要把它們混在一起。
每當你連線執行不同系統版本或 Build 的裝置,Xcode 都可能準備一套對應支援。經歷幾輪系統測試後,開發機上經常會留下當前裝置實驗室已經不再使用的舊版本。
找到資料夾,列出必須保留的版本
審查前先退出 Xcode,並斷開實體裝置。在 Finder 按 Command-Shift-G,輸入 ~/Library/Developer/Xcode,檢視是否存在 iOS DeviceSupport 和 macOS DeviceSupport。實際目錄取決於這台 Mac 用過哪些平台、Xcode 版本和裝置。
切到列表檢視並計算各資料夾大小。終端使用者可以執行 du -sh ~/Library/Developer/Xcode/*DeviceSupport* 做只讀彙總;如果萬用字元沒有匹配到內容,通常只是說明相應目錄不存在。
接著盤點仍需除錯的真機。在裝置上開啟「設定 > 通用 > 關於本機」檢視軟體版本,也可以連線後在 Xcode 的 Window > Devices and Simulators 中核對。與當前測試矩陣匹配的 DeviceSupport 應當保留。
- 退出 Xcode 和 Simulator,並斷開實體測試裝置。
- 在 Finder 開啟 ~/Library/Developer/Xcode,測量每個 DeviceSupport 資料夾。
- 列出近期仍需除錯的每台真機及其系統版本。
- 保留對應版本,以及團隊近期明確要測試的 Beta 或相容性目標。
- 僅把不匹配、已經退役的版本移到垃圾桶;完成下一次真機除錯驗證前,不要清空垃圾桶。
刪除以後會發生什麼
如果以後重新連線一台被你刪過支援檔案的裝置,Xcode 可能顯示準備提示,並恢復或獲取該系統版本所需的資料。Apple 曾在 Xcode 發布說明的故障解決步驟中明確寫過:刪除 iOS DeviceSupport 後,重新連線裝置,Xcode 會再次複製符號。
這說明 DeviceSupport 通常可以重新準備,但不意味著任何時候都適合清空。重新生成需要時間、需要對應裝置和相容工具鏈,還可能在你急著除錯時打斷工作。因此,當前裝置實驗室裡的系統版本應當留下。
如果某個舊系統 Build 已經無法復現,也沒有裝置可重新連線,就要權衡以後調查遺留問題的可能性。最保守的辦法是先把該版本移動到有備份的外接儲存,需要時再放回原目錄。
Apple 的「刪除後重新連線」說明來自某個 Xcode 版本的特定故障處理。它能證明支援檔案可以再次準備,但不是讓你定期清空所有當前版本的建議。
別混淆這四類 Xcode 儲存
DeviceSupport 對應實體裝置除錯。模擬器執行時透過 Xcode Settings > Platforms 管理,虛擬裝置及其 App 資料則位於 CoreSimulator。刪除 DeviceSupport 不會解除安裝模擬器執行時。
DerivedData 儲存專案建置產物和索引,可以從原始碼重新生成。急需空間時,它通常是第一個檢查的目標。DeviceSupport 在很多情況下也能恢復,但需要 Xcode 針對相應實體裝置重新準備。
Archives 風險最高。一份 .xcarchive 可能儲存已分發二進位檔與匹配 dSYM。絕不能因為 Archive 的版本號看起來像一個過時的 DeviceSupport 目錄,就把兩者視為同一類快取。
DeviceSupport 不一定是真正的空間大戶
Xcode 目錄很大,不代表 DeviceSupport 就是主要來源。應當分別測量 DerivedData、Archives、CoreSimulator、DocumentationCache 與 DeviceSupport。清掉一個不大的符號目錄,卻留下多套廢棄模擬器執行時,既省不了多少空間,還平白增加下次準備時間。
啟動盤已經爆滿時,先從可逆、可重建的資料騰出工作空間:垃圾桶、下載目錄、舊 DerivedData 和 unavailable 模擬裝置。然後再按系統版本審查 DeviceSupport,最後才是需要發布制度判斷的 Archives。
清理後重新測量。macOS「儲存」設定裡的分類更新可能有延遲,Finder 中的資料夾大小或 du 的前後對比更直接。不要套用「肯定能省十幾 GB」的通用數字,真正可回收的就是你這台 Mac 上那些過時版本的實際體積。
AskClean 如何把差異顯示出來
AskClean 會把 iOS 與 macOS DeviceSupport 作為獨立 Xcode 項目測量,放進需要謹慎確認的流程。它不會把 DeviceSupport 與 DerivedData 合併,也不會把 Archives 描述成同等代價的快取。
掃描結果會解釋 DeviceSupport 刪除後的重新準備成本,並在移動到垃圾桶前詢問你;Archives 則顯示更嚴格的不可恢復警告。工具負責把風險說清,當前真機測試矩陣仍然由你決定。
DeviceSupport 只是 Xcode 儲存的一層
結合目錄位置與恢復代價,避免誤刪。
| 類別 | 常見位置 | 刪除後果 |
|---|---|---|
| 實體裝置支援 | ~/Library/Developer/Xcode/iOS DeviceSupport | 以後連線匹配裝置時,Xcode 可能重新準備。 |
| 模擬器資料 | ~/Library/Developer/CoreSimulator | 刪除裝置會失去其中安裝的 App 和測試資料。 |
| DerivedData | ~/Library/Developer/Xcode/DerivedData | 專案會從原始碼重新建置和索引。 |
| Archives 與 App dSYM | ~/Library/Developer/Xcode/Archives | 可能永久失去某個已分發版本的精確除錯證據。 |
常見問題
iOS DeviceSupport 刪除安全嗎?
已經不再除錯的系統版本通常可以刪除;當前真機使用的版本應該保留。以後若再次需要,被刪除的支援資料可能由 Xcode 在裝置重連時重新準備。
DeviceSupport 裡有我 App 的 dSYM 嗎?
它服務於實體裝置和作業系統除錯,不能替代某個線上二進位檔對應的 App dSYM。生產崩潰符號化仍要保留原始 Archive 或匹配符號。
刪除 DeviceSupport 會刪掉模擬器執行時嗎?
不會。模擬器執行時和虛擬裝置資料由 Xcode Platforms、simctl 與 CoreSimulator 單獨管理。
為什麼刪完之後資料夾又回來了?
因為 Xcode 除錯實體裝置時,需要匹配其系統 Build 的支援資料。再次連線相同版本的裝置,Xcode 可能重新準備或複製,所以仍在使用的版本會重新佔用空間。
參考來源