如何清理 Mac 上的舊 iOS 模擬器執行階段
隨著時間推移,Xcode 的 iOS 模擬器會在不知不覺中佔用數 GB 的儲存空間。以下是清理這些空間的方法。
Xcode 的儲存空間分成執行階段、模擬器裝置、DerivedData、DeviceSupport 和 Archives。它們看起來相近,但管理方式與還原成本不同,應先測量再刪除。
為什麼 iOS 模擬器會佔用這麼多空間
執行階段是下載的 iOS、watchOS、tvOS 或 visionOS 系統映像;模擬器裝置是使用其中一個執行階段的虛擬裝置。多台裝置可以共用同一個執行階段,兩者不能當成同一種快取。
如何透過終端機刪除未使用的模擬器
xcrun simctl delete unavailable 只會刪除執行階段已不可用的裝置記錄:
xcrun simctl delete unavailable
它不會解除安裝執行階段。請在 Xcode > Settings > Components 檢查和移除已下載的執行階段,不要直接刪除 /Library/Developer/CoreSimulator 或 /System/Library/AssetsV2 裡的資料夾。
清除模擬器快取和應用數據
只想清除某台裝置的測試狀態時,在 Simulator 中啟動它,再選擇 Device > Erase All Content and Settings。這會重設目前裝置,不會刪除共用的執行階段;已安裝 App、鑰匙圈和資料庫都會消失。
手動刪除 iOS DeviceSupport 和 DerivedData
DerivedData 可重新產生,但整包清空會讓所有專案重新建置和索引。DeviceSupport 可能仍用於實體裝置除錯;已發布版本的 Archives 和 dSYM 可能要用於後續崩潰解析。Mole 可以列出被新版取代的執行階段,並透過 simctl runtime delete 移除選取項,其他裝置和歸檔仍應回到 Xcode 管理。
常見問題
刪除模擬器會刪掉我的專案代碼嗎?
不會刪除專案原始碼,但虛擬裝置中的 App 和測試狀態會消失。
刪除 iOS DeviceSupport 資料夾安全嗎?
不要把整個 DeviceSupport 當成快取。舊系統版本的資料仍可能用於實體裝置除錯或崩潰解析。
Mole 能找到舊的模擬器嗎?
Mole 會列出被取代的已下載執行階段,並透過 simctl 刪除選取項;它不會手動刪 CoreSimulator 資料夾。