【新增】
一般清理显晶,
- 從 App Store 下載安裝 DevCleaner 贷岸,可以清理掉很多。
- 命令行作一般清理
-
xcrun simctl list
列出所有 devices / runtimes 等等 -
xcrun simctl delete unavailable
刪除不再可用的模擬器數(shù)據(jù)(實(shí)際刪除的是 ~/Library/Developer/CoreSimulator/Devices 的某個(gè)子目錄磷雇,子目錄名字是該模擬器的UUID)(包括模擬器配置和安裝的 app偿警,不包括模擬器的運(yùn)行時(shí) runtime) -
/Library/Developer/CoreSimulator/Profiles/Runtimes
,超級(jí)占空間的模擬器的 runtime唯笙,(用 Finder 或者du -sh *
查看占空間情況)螟蒸,F(xiàn)inder 打開(kāi)文件夾后刪除,或者sudo rm -rf
某個(gè)具體的模擬器運(yùn)行時(shí)崩掘,反正得輸入開(kāi)機(jī)密碼七嫌。
- Xcode下載資料的緩存
~/Library/Caches/com.apple.dt.Xcode
,這個(gè)目錄下的Downloads 子目錄可能占了很多空間苞慢,建議清空诵原。
【原文】
徹底清理
直接更新Xcode會(huì)將配置信息和舊模擬器都保留,有時(shí)會(huì)產(chǎn)生一些無(wú)法推測(cè)原因的混亂挽放。
如果你想安裝一個(gè)全新的Xcode绍赛,請(qǐng)按下面的步驟進(jìn)行:
刪除App
移除/Applications/Xcode.app
,并從垃圾桶移除(若不清除會(huì)影響后續(xù)的find結(jié)果辑畦;如果從 LaunchPad 長(zhǎng)按并點(diǎn)叉叉刪除則不進(jìn)垃圾桶)吗蚌;找到并刪除Xcode的相關(guān)文件(文檔,模擬器纯出,plug-ins蚯妇,編譯記錄)
find / -maxdepth 7 -name Xcode 2>/dev/null
(命令末尾的 2>/dev/null 是過(guò)濾掉沒(méi)有文件夾訪問(wèn)權(quán)限的提示信息)
將找到的目錄悉數(shù)刪除(刪除前先確認(rèn)有沒(méi)有自定義的名為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這一個(gè)開(kāi)發(fā)工具)
列出這些目錄分扎,其中,/System/Library/LaunchAgents/
目錄下的
com.apple.dt.CommandLineTools.installondemand.plist
這個(gè)文件不建議刪除(此處不作解釋)
(不要手工刪除 /var 目錄下的內(nèi)容胧洒,重啟時(shí)應(yīng)該會(huì)自動(dòng)刪除畏吓。若發(fā)現(xiàn)文件太大,且重啟后也不消失卫漫,可先移到某個(gè)用戶目錄)
所以安全穩(wěn)妥的刪除方式是菲饼,執(zhí)行下面的兩個(gè)命令將它們?nèi)縿h除,
(涉及兩個(gè)目錄列赎,/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與此相應(yīng))
- 謹(jǐn)慎移除名為Developer的系統(tǒng)目錄下的內(nèi)容
find / -maxdepth 5 -name Developer 2>/dev/null
找到的結(jié)果里诗越,有3個(gè)值得注意的目錄
/Library/Developer
~/Library/Application\ Support/Developer
~/Library/Developer
對(duì)于找到的 /Library/Developer
目錄砖瞧,可能包含的3個(gè)子目錄是:
CommandLineTools,命令行工具嚷狞,可刪除块促,日后重裝不難,
CoreSimulator床未,模擬器(非常占空間的運(yùn)行時(shí) runtime)竭翠,如果你不希望新安裝的Xcode使用舊的模擬器,建議一并刪除(Xcode的設(shè)置菜單里可重新下載)(用 finder 刪除或 sudo rm -rf 才行薇搁,反正要輸入開(kāi)機(jī)密碼)
PrivateFrameworks
目錄斋扰,請(qǐng)不要?jiǎng)h除,如果要?jiǎng)h除只酥,請(qǐng)先將它的名字后加上.bak褥实,在新的Xcode安裝成功并能成功編譯項(xiàng)目后再行刪除——否則,有導(dǎo)致新Xcode無(wú)法啟動(dòng)的風(fēng)險(xiǎn)裂允。尚不清楚這個(gè)目錄是首次安裝Xcode時(shí)引入的损离,還是macOS自帶的。
而 ~/Library/Application\ Support/Developer
目錄下安裝的是 plug-in绝编,由于Xcode 早已禁用 plug-in僻澎,而推薦 Xcode Extension梧兼,所以該Developer目錄完全可以刪除。
~/Library/Developer
下的3個(gè)子目錄都可以刪除瑟枫。下面講這3個(gè)子目錄的用途:
CoreSimulator遥皂,存放模擬器配置數(shù)據(jù)(下載的模擬器存放在前面講過(guò)的系統(tǒng)目錄下,而不是這個(gè)用戶目錄)秉氧;
XCPGDevices暫不清楚用途眷昆,但確認(rèn)可刪,且其子目錄結(jié)構(gòu)與 CoreSimulator目錄下的任一模擬器相似汁咏;
Xcode目錄存放一些臨時(shí)數(shù)據(jù)亚斋,其DerivedData存儲(chǔ)編譯緩存和每個(gè)項(xiàng)目的索引數(shù)據(jù),iOS DeviceSupport子目錄存放插到mac機(jī)上的手機(jī)索引信息攘滩,如果刪除該目錄帅刊,會(huì)導(dǎo)致下次將手機(jī)插入mac時(shí)不能馬上開(kāi)始調(diào)試,而需要等待幾分鐘漂问。
- provisioning profile 目錄
~/Library/MobileDevice/Provisioning Profiles
一般不需要清理赖瞒。
有意思的是,這個(gè)目錄下的授權(quán)證書文件名就是證書的 UUID
security cms -Di xx.mobileprovision | grep -A 1 UUID
就能對(duì)比出結(jié)果了蚤假。
其他參考資料