Mac電腦現在都用SSD硬盤,速度超快用起來很爽,但價格貴,同樣價格下容量比傳統硬盤低很多,因此用不了多久就開始捉襟見肘。尤其對於開發者來說,Xcode經常升級,每次升級後舊的模擬器、系統文件、項目緩存文件都不會自動刪除,結果就是沒用的文件佔有越來越多的空間,白白浪費了。
今天升級Xcode,系統提示空間不足,無法升級,只能手動清理一下了。下面是清理過程,供有同樣問題的朋友參考。
首先第一步,通過清空垃圾桶把已經刪除文件佔用的空間釋放出來。如果這樣搞了之後空間達到預期,那就可以收工了。如果不行,就繼續往下走。
在Home目錄下通過 du 命令查看目錄佔用情況:
$: du -sm *
# 其它目錄忽略了,重點是這兩個目錄
20891 Downloads
102860 Library
Downloads目錄就是平時下載的各種文件,可以通過按日期排序,把3個月前的都刪除,只要自己平時養成一個習慣,下載的好東東都移動到其它目錄,不要放在Downloads目錄下,這樣方便清理。
然後看Library目錄:
$ cd Library
Library$ du -sm *
# 其它目錄忽略,只看佔用空間最大的
51509 Developer
Developer目錄佔用了50G,這是Xcode的相關文件存放目錄,進去看內容:
Library $ cd Developer
Developer $ du -sm *
25346 CoreSimulator
0 Shared
29 XCPGDevices
146 XCTestDevices
25990 Xcode
一半是CoreSimulator,一半是Xcode,先看CoreSimulator:
Developer $ cd CoreSimulator
CoreSimulator $ du -sm
4496 Caches
21567 Devices
0 Temp
主要都被Devices目錄佔用了,這個目錄下是一大堆UDID命名的目錄,這是各種版本的iOS模擬器,升級Xcode時會自動安裝新版本模擬器,但不會刪除舊的,所以就會越來越多,而這些舊版本模擬器幾乎不會再用到了,可以放心刪除。當然,刪除的時候要把當前Xcode版本用到的模擬器保留,否則就需要重新安裝Xcode了。可以在Xcode的Devices and Simulators工具裏查看目前用的是哪些模擬器,模擬器的Identifier就是對應的目錄名。如果目錄太多,可以用bash腳本生成刪除命令:
$ cd Devices
$ ls -l | awk '{print "rm -rf " $9;}'
rm -f 1BC92CCF-99BA-4C36-93E2-CB3BE5331BDF
rm -f 2B19E9FF-410E-457A-8145-E3BA7C776D91
rm -f 30A62EF4-5874-4A29-B86A-D9E6F24E72A2
rm -f 3434DC6D-45A8-45E0-A0C0-32AA1AC2CDF3
rm -f 381CF61E-F835-4A2D-95B5-975BBBC1CDF5
rm -f 3B564390-1D12-4044-98B3-B3E3F17822F1
rm -f 413BBEBF-1A74-42D7-8CC7-7BE5935FFFD2
rm -f 4E5F6F88-354D-4A34-BAB7-86F2B2E046A1
rm -f 4F3689E5-F3A8-420E-809A-3A07D136AAC7
rm -f 63F590FD-B459-457B-9AF1-7E3940E96498
rm -f 78E9FEFF-E379-4B19-BB68-961D21E55E6A
rm -f 81615E93-E27B-4CE5-8B68-BD2825E0DE07
rm -f 82476019-C4E2-4BCB-BF1E-DEF25F3C7E13
rm -f 8C6A2F90-0685-4ADA-AB66-CDDF2F942F8B
rm -f 8CF34315-380F-4218-951D-1C902E4ABE89
rm -f 99A844D2-76F5-4CDB-AB10-C762B083B8CF
rm -f 9E860AB5-DBFA-457F-BED6-046D0273DCF6
把這些命令複製下來,刪除目前用到的模擬器ID,就可以運行刪除。
下面再看Xcode目錄:
$ cd ../Xcode
$ du -sm *
905 Archives
3027 DerivedData
304 Templates
980 UserData
689 iOS Device Logs
19865 iOS DeviceSupport
其中 iOS DeviceSupport是iOS編譯鏈接需要的庫文件,不能刪除。Archives和DerivedData、iOS Device Logs都是開發過程中生成的文件,可以放心刪除。
整個操作下來,釋放了100多G的空間,世界終於清淨了。