AskCleanAskClean問淨

Xcode iOS DeviceSupport 可以刪嗎?安全清理指南

AskClean 團隊 · 更新於 2026-07-31

不再用於真機除錯的系統版本,其 DeviceSupport 資料夾可以刪除;當前測試裝置正在使用的版本應當保留。以後再次連線對應裝置時,Xcode 可以重新準備所需支援,因此刪除的代價主要是等待,而不是丟失原始碼。

開發用 Mac 與手機周圍分佈著當前和過時的裝置除錯符號
保留當前真機測試矩陣需要的版本,其他舊版本按系統逐個審查。

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 應當保留。

  1. 退出 Xcode 和 Simulator,並斷開實體測試裝置。
  2. 在 Finder 開啟 ~/Library/Developer/Xcode,測量每個 DeviceSupport 資料夾。
  3. 列出近期仍需除錯的每台真機及其系統版本。
  4. 保留對應版本,以及團隊近期明確要測試的 Beta 或相容性目標。
  5. 僅把不匹配、已經退役的版本移到垃圾桶;完成下一次真機除錯驗證前,不要清空垃圾桶。

刪除以後會發生什麼

如果以後重新連線一台被你刪過支援檔案的裝置,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 可能重新準備或複製,所以仍在使用的版本會重新佔用空間。

參考來源

繼續檢查 Xcode 儲存