重裝或清理 Xcode 的完整步驟(詳解)

【新增】
一般清理显晶,

  1. 從 App Store 下載安裝 DevCleaner 贷岸,可以清理掉很多。
  2. 命令行作一般清理
  • 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ī)密碼七嫌。
  1. Xcode下載資料的緩存 ~/Library/Caches/com.apple.dt.Xcode,這個(gè)目錄下的Downloads 子目錄可能占了很多空間苞慢,建議清空诵原。

【原文】
徹底清理
直接更新Xcode會(huì)將配置信息和舊模擬器都保留,有時(shí)會(huì)產(chǎn)生一些無(wú)法推測(cè)原因的混亂挽放。
如果你想安裝一個(gè)全新的Xcode绍赛,請(qǐng)按下面的步驟進(jìn)行:

  1. 刪除App
    移除 /Applications/Xcode.app,并從垃圾桶移除(若不清除會(huì)影響后續(xù)的find結(jié)果辑畦;如果從 LaunchPad 長(zhǎng)按并點(diǎn)叉叉刪除則不進(jìn)垃圾桶)吗蚌;

  2. 找到并刪除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的什么文件)

  1. 找到并刪除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))

  1. 謹(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)試,而需要等待幾分鐘漂问。

  1. provisioning profile 目錄
~/Library/MobileDevice/Provisioning Profiles

一般不需要清理赖瞒。
有意思的是,這個(gè)目錄下的授權(quán)證書文件名就是證書的 UUID

security cms -Di xx.mobileprovision | grep -A 1 UUID

就能對(duì)比出結(jié)果了蚤假。

其他參考資料

  1. ios-simulator-simctl
  2. stackoverflow: How to remove old unneeded devices
  3. stackoverflow: Can I delete data from iOS DeviceSupport
  4. delete-temporary-items-private-var-folders-mac-os-x
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末栏饮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子勤哗,更是在濱河造成了極大的恐慌抡爹,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芒划,死亡現(xiàn)場(chǎng)離奇詭異冬竟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)民逼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門泵殴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拼苍,你說(shuō)我怎么就攤上這事笑诅。” “怎么了疮鲫?”我有些...
    開(kāi)封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵吆你,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我俊犯,道長(zhǎng)妇多,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任燕侠,我火速辦了婚禮者祖,結(jié)果婚禮上立莉,老公的妹妹穿的比我還像新娘。我一直安慰自己七问,他們只是感情好蜓耻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著械巡,像睡著了一般刹淌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坟比,一...
    開(kāi)封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天芦鳍,我揣著相機(jī)與錄音嚷往,去河邊找鬼葛账。 笑死,一個(gè)胖子當(dāng)著我的面吹牛皮仁,可吹牛的內(nèi)容都是我干的籍琳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贷祈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼趋急!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起势誊,我...
    開(kāi)封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呜达,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后粟耻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體查近,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年挤忙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霜威。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡册烈,死狀恐怖戈泼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赏僧,我是刑警寧澤大猛,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站淀零,受9級(jí)特大地震影響挽绩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窑滞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一琼牧、第九天 我趴在偏房一處隱蔽的房頂上張望恢筝。 院中可真熱鬧,春花似錦巨坊、人聲如沸撬槽。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侄柔。三九已至,卻和暖如春占调,著一層夾襖步出監(jiān)牢的瞬間暂题,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工究珊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留薪者,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓剿涮,卻偏偏與公主長(zhǎng)得像言津,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子取试,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容