【新增】
一般清理,
- 從 App Store 下載安裝 DevCleaner ,可以清理掉很多。
- 命令行作一般清理
-
xcrun simctl list
列出所有 devices / runtimes 等等 -
xcrun simctl delete unavailable
刪除不再可用的模擬器數(shù)據(jù)(實際刪除的是 ~/Library/Developer/CoreSimulator/Devices 的某個子目錄,子目錄名字是該模擬器的UUID)(包括模擬器配置和安裝的 app,不包括模擬器的運行時 runtime) -
/Library/Developer/CoreSimulator/Profiles/Runtimes
,超級占空間的模擬器的 runtime,(用 Finder 或者du -sh *
查看占空間情況),F(xiàn)inder 打開文件夾后刪除,或者sudo rm -rf
某個具體的模擬器運行時,反正得輸入開機密碼。
- Xcode下載資料的緩存
~/Library/Caches/com.apple.dt.Xcode
,這個目錄下的Downloads 子目錄可能占了很多空間,建議清空。
【原文】
徹底清理
直接更新Xcode會將配置信息和舊模擬器都保留,有時會產(chǎn)生一些無法推測原因的混亂。
如果你想安裝一個全新的Xcode,請按下面的步驟進行:
刪除App
移除/Applications/Xcode.app
,并從垃圾桶移除(若不清除會影響后續(xù)的find結(jié)果;如果從 LaunchPad 長按并點叉叉刪除則不進垃圾桶);找到并刪除Xcode的相關文件(文檔,模擬器,plug-ins,編譯記錄)
find / -maxdepth 7 -name Xcode 2>/dev/null
(命令末尾的 2>/dev/null 是過濾掉沒有文件夾訪問權(quán)限的提示信息)
將找到的目錄悉數(shù)刪除(刪除前先確認有沒有自定義的名為Xcode的什么文件)
- 找到并刪除Xcode配置信息,安裝記錄,Cookie/Cache/CrashReporter,等等
find / -maxdepth 7 -name com.apple.dt.\* 2>/dev/null
(dt是developer tools的意思,比如Xcode的bundleId是com.apple.dt.Xcode,假定你只安裝了蘋果家Xcode這一個開發(fā)工具)
列出這些目錄,其中,/System/Library/LaunchAgents/
目錄下的
com.apple.dt.CommandLineTools.installondemand.plist
這個文件不建議刪除(此處不作解釋)
(不要手工刪除 /var 目錄下的內(nèi)容,重啟時應該會自動刪除。若發(fā)現(xiàn)文件太大,且重啟后也不消失,可先移到某個用戶目錄)
所以安全穩(wěn)妥的刪除方式是,執(zhí)行下面的兩個命令將它們?nèi)縿h除,
(涉及兩個目錄,/Library 和 ~/Library,前者是系統(tǒng)目錄,后者是用戶目錄)
find /Library -maxdepth 7 -name com.apple.dt.\* 2>/dev/null -print0 | xargs -0 sudo rm -rf
find ~/Library -maxdepth 7 -name com.apple.dt.\* 2>/dev/null -print0 | xargs -0 sudo rm -rf
(-print0是將NUL作為分隔符,NUL也就是'/0',而不是空格;-0與此相應)
- 謹慎移除名為Developer的系統(tǒng)目錄下的內(nèi)容
find / -maxdepth 5 -name Developer 2>/dev/null
找到的結(jié)果里,有3個值得注意的目錄
/Library/Developer
~/Library/Application\ Support/Developer
~/Library/Developer
對于找到的 /Library/Developer
目錄,可能包含的3個子目錄是:
CommandLineTools,命令行工具,可刪除,日后重裝不難,
CoreSimulator,模擬器(非常占空間的運行時 runtime),如果你不希望新安裝的Xcode使用舊的模擬器,建議一并刪除(Xcode的設置菜單里可重新下載)(用 finder 刪除或 sudo rm -rf 才行,反正要輸入開機密碼)
PrivateFrameworks
目錄,請不要刪除,如果要刪除,請先將它的名字后加上.bak,在新的Xcode安裝成功并能成功編譯項目后再行刪除——否則,有導致新Xcode無法啟動的風險。尚不清楚這個目錄是首次安裝Xcode時引入的,還是macOS自帶的。
而 ~/Library/Application\ Support/Developer
目錄下安裝的是 plug-in,由于Xcode 早已禁用 plug-in,而推薦 Xcode Extension,所以該Developer目錄完全可以刪除。
~/Library/Developer
下的3個子目錄都可以刪除。下面講這3個子目錄的用途:
CoreSimulator,存放模擬器配置數(shù)據(jù)(下載的模擬器存放在前面講過的系統(tǒng)目錄下,而不是這個用戶目錄);
XCPGDevices暫不清楚用途,但確認可刪,且其子目錄結(jié)構(gòu)與 CoreSimulator目錄下的任一模擬器相似;
Xcode目錄存放一些臨時數(shù)據(jù),其DerivedData存儲編譯緩存和每個項目的索引數(shù)據(jù),iOS DeviceSupport子目錄存放插到mac機上的手機索引信息,如果刪除該目錄,會導致下次將手機插入mac時不能馬上開始調(diào)試,而需要等待幾分鐘。
- provisioning profile 目錄
~/Library/MobileDevice/Provisioning Profiles
一般不需要清理。
有意思的是,這個目錄下的授權(quán)證書文件名就是證書的 UUID
security cms -Di xx.mobileprovision | grep -A 1 UUID
就能對比出結(jié)果了。
其他參考資料