身為 iOS 工程師要知道的清除 Mac 垃圾檔案的方法

閱讀時間約 8 分鐘
我有一台 2017 年版本的 Macbook Pro,儲存裝置的規格是 256GB SSD。原先以為就開發而言 256GB 已經很足夠了,平常僅用來存放技術文件、程式碼、電子書,除了開發工具以外安裝應用程式的需求也不多,而其他娛樂或是相片等檔案也大多存於外接硬碟中。然而隨著作業系統與開發工具的日益肥大、第三方函式庫或是套件管理器的各式各樣安裝方式(CocoaPods、Carthage、Homebrew、RubyGems、Bundler),在儲存裝置中總會留下或多或少的暫存、垃圾檔案。不知不覺當中,才發現 256GB 中可用的容量所剩無幾,甚至面臨每次要更新 macOS、或是 Xcode 版本時系統都會跳出可用空間不足的窘境。
專注力應該用在工作,而不是分心處理資源匱乏的問題。
《匱乏經濟學》一書中提到,人的認知頻寬(mental bandwidth)是有限的,資源(時間、空間、金錢等等)上的匱乏會盤據在人的心頭,從而產生隧道效應(tunneling),造成我們只能將注意力放在眼前讓自己焦慮的事情,而無法聚焦精神在其他重要但較不迫切的事物上。
工程師的專注力是非常寶貴的資源,和產出能力息息相關,如果因為儲存空間的不足導致必須時常費心去清除零碎檔案釋放空間,對工程師本人和產品本身都是極大的損失。所幸網路上找得到許多清除垃圾檔案的方法,在這邊我就重點擷取幾個對 iOS 工程師而言比較有感的方式。

使用系統工具管理儲存空間

macOS Sierra 和以上版本,可使用系統工具來管理儲存裝置上的空間。開啟的方式有兩種:
  1. 在「蘋果」()選單中選擇「關於這台 Mac」,然後按一下「儲存空間」。接著按下「管理」按鈕。
  2. 打開此路徑:「/應用程式/工具程式/系統資訊.app」(或是“/Applications/Utilities/System Information.app”),在 App 選單中選取「視窗>儲存空間管理」
接著可以使用該工具將檔案存到 iCloud 中、最佳化儲存空間、清除垃圾桶、或是依照檔案大小來清理不必要的檔案。

清除 Xcode 暫存或過期檔案

以下路徑的檔案可斟酌刪除,但後果請自負。
  • ~/Library/Developer/Xcode/DerivedData
  • ~/Library/Developer/Xcode/Archives
  • ~/Library/Developer/Xcode/iOS DeviceSupport
  • ~/Library/Developer/CoreSimulator/Devices
  • ~/Library/Caches/com.apple.dt.Xcode
DerivedData 和 Archives 應該不需要多說什麼,開發者都知道。iOS DeviceSupport 最好只清除新版 Xcode 不再支援的版本,也就是舊版 Xcode 殘留下來的版本。
CoreSimulator/Devices 點進去只看到一堆 UUID,這個目錄該如何清呢?請參照這篇,可以選擇在終端機應用程式中透過 xcrun simctl list devices 指令,一個一個對照之後清除用不到的,或者直接使用指令 xcrun simctl delete unavailable 一次清除。
Xcode Caches 顧名思義,清除應該是安全的。

清除 iOS 裝置備份檔案

  • ~/Library/Application Support/MobileSync/Backup
該路徑是 iOS 裝置透過 iTunes 在你電腦上的備份,可以參照官方的這篇文章決定是否刪除。

清除各個瀏覽器的暫存檔

Safari

  1. 點選 App 選單的 Safari偏好設定
  2. 在出現的視窗中點選進階
  3. 勾選在選單列中顯示「開發」選單
  4. 點選 App 選單的開發清除快取資料
  5. 以上步驟等同於直接清除 ~/Library/Caches/com.apple.Safari/Cache.db

Chrome

  1. 選取右上角的三點按鈕設定
  2. 選取最下方的進階,展開後選取清除瀏覽資料
  3. 只留下快取圖片和檔案的勾選,其他皆取消選取,然後選擇時間範圍後點選清除資料
  4. 以上步驟等同於直接清除 ~/Library/Caches/Google/Chrome/ 以及 ~/Library/Application Support/Google/Chrome/Default/Application Cache/

Firefox

  1. 點選右上角漢堡圖示偏好設定
  2. 點選左側欄的隱私權與安全性,找到 Cookie 與網站資料,點選旁邊的清除資料
  3. 僅保留勾選網頁快取內容,然後點選清除

清除 CocoaPods 的快取

可直接在終端機程式中輸入 rm -rf ~/Library/Caches/CocoaPods 或是 pod cache clean --all 來清除 CocoaPods 的快取。

清除 Carthage 的快取

參考這篇,在終端機程式中輸入 rm -rf ~/Library/Caches/org.carthage.CarthageKit 清除。

清除 Homebrew 老舊版本

如果你有透過 Homebrew 安裝 Carthagefastlane 或是 rbenv,每次升級後會有一些殘留的舊版本 formula,可以刪除。
參考官方文件,透過 brew cleanup -n 指令預覽哪些 formula 會被刪除,再透過 brew cleanup 指令刪除之。

清除 RubyGems 老舊版本

如果你有透過 RubyGems 安裝 CocoaPods 或是 fastlane,每次升級後會有一些殘留的舊版本 gems,可以刪除。
參考這篇或是官方文件,透過 gem cleanup --dryrun 指令預覽哪些 gems 會被刪除,再透過 gem cleanup 指令刪除之。

透過 Bundler 清除特定專案的 gems

如果你有使用 Bundler 來管理 CocoaPods 或是 fastlane gem 的版本或是相依性,可以使用指令來清除 bundler 目錄下未使用的 gems,通常在你大幅改變專案的 gem 相依性時比較會需要做這個動作。
參考這篇或是官方文件(連結為1.17版),透過 bundle clean --dry-run 指令預覽哪些 gems 會被刪除,再透過 bundle clean 刪除之。
附註:Bundler 在安裝 gem 時,除非有使用 bundle install --path ... 來指定安裝路徑,不然預設會裝在跟 RubyGems 設定一樣的位置,也就是 gem install ... 安裝的位置。這時候用 gem list 指令也會列出透過 Bundler 安裝的 gem。bundle clean 只會處理透過 --path 安裝的 gem,如果你很確定想要把系統預設路徑下專案未用到的 gem 都刪除,可以使用 bundle clean --force 指令——但如果你有其他專案有用到這些 gem 的話,這將會是一個危險的動作。此外,如果你有使用 --path 來安裝,bundle installbundle update 就會自動做清除的動作,所以通常 bundle clean 並不是那麼必要。

由於每個人使用的開發工具不同,在這裡也僅能分享一些筆者有用到的部分,但基本精神是相同的。希望透過這篇的整理可以讓大家不用再煩惱於儲存空間的不足,把專注力集中在開發程式上吧!謝謝收看。
我是 Lefty,一位低調的 iOS 開發者。
我的 Medium:https://medium.com/@lefty.
我的 vocus:https://vocus.cc/user/@lefty
為什麼會看到廣告
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
閱讀心得:說話是一種展現自我的生活態度|成熟大人的說話課我們每天都在說話,但說出的話合適嗎? Sunny最近讀完一本有關溝通的書籍。 這是由世紀奧美公關的創辦人「丁菱娟」所寫的書,書的全名《丁菱娟的成熟大人說話課:如何說,才能得體又不傷人?反擊時,如何堅定又有力量?任何情境都可用的38個溝通之道》。 會找這本書來看,主要是因為Sunny 近期發
Thumbnail
2024-07-10
防曬產品係數測試報告彙整(2024年)從2014年起,自己對於市售防曬產品的效能產生了濃厚的興趣。因為當時候發現不少產品的防曬係數其實標示是有問題的,像是原本應該是人體測試的SPF與PA數值,實際上沒有做,只用機器測試的數據來充當,但這兩者卻有很大的差異。像是防曬係數其實有強度、廣度與平均度三個面向需要一起判斷,但多數廠商並沒有完整標示
Thumbnail
IOS 15 懶人包/一次看完目前公開資訊    這個月IOS 15就預計要更新了~或許還是有很多人看不懂這次IOS 15更新的內容到底是什麼.為了讓大家能迅速了解這次更新的重點,我們簡單介紹下這次更新的內容究竟有哪些吧~     事先說明,本文章只是提供個懶人包讓大家快速了解IOS 15的消息,如果想知道具體更新的內容請至蘋果官網了解~
Thumbnail
IOS捷徑|使用捷徑紀錄喝水,養成生活好習慣!|捷徑分享2021年想要保持的小習慣就是,記錄每天的自己有沒有喝到足量的水,所以我使用了健康跟捷徑這兩個蘋果原生的軟體,來真實記錄自己每天的喝水狀況。
Thumbnail
2021-08-09
为什么iOS可以持续为旧设备升级,Android厂商却不太积极?【个人意见】 有想过为什么苹果会提供最新iOS 15,给6年前发布的iPhone 6s吗? 苹果每年都按照惯例,在WWDC上发布自家最新的iOS系统。当然,今年也不例外在WWDC 2021发布了iOS 15。 在发布会前,网上就一直有流传iOS 15不会支持iPhone 6s系列。这个流言看似
Thumbnail
2021-06-16
IOS 內建螢幕錄影功能介紹今天要和大家介紹如何用 IOS 內建的螢幕錄影功能搭配 PDF 做教學影片!然後還會介紹不用下載任何 APP 就能編輯影片的超實用功能!
Thumbnail
Ios App 開發所需,以及開發時的需求其實基本的電腦工具大多教學部落格都有提供。 為什麼還要出這一篇呢? 因為本專題是筆記,如果有問題想要找尋答案的人,如果本魯也有遇到,就可以大家一起互相交流XD
2020-05-10