身為 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
查看全部
avatar-img
發表第一個留言支持創作者!
Lefty Chang的沙龍 的其他內容
Xcode 10 使用了新的 build system,導致有使用 Crashlytics 框架的專案,其整合方式需要作些微調整。在說明之前,先看看以下引用自 Fabric 官方文件的片段:
Xcode 10 使用了新的 build system,導致有使用 Crashlytics 框架的專案,其整合方式需要作些微調整。在說明之前,先看看以下引用自 Fabric 官方文件的片段:
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
    這個月IOS 15就預計要更新了~或許還是有很多人看不懂這次IOS 15更新的內容到底是什麼.為了讓大家能迅速了解這次更新的重點,我們簡單介紹下這次更新的內容究竟有哪些吧~     事先說明,本文章只是提供個懶人包讓大家快速了解IOS 15的消息,如果想知道具體更新的內容請至蘋果官網了解~
Thumbnail
2021年想要保持的小習慣就是,記錄每天的自己有沒有喝到足量的水,所以我使用了健康跟捷徑這兩個蘋果原生的軟體,來真實記錄自己每天的喝水狀況。
Thumbnail
今天要和大家介紹如何用 IOS 內建的螢幕錄影功能搭配 PDF 做教學影片!然後還會介紹不用下載任何 APP 就能編輯影片的超實用功能!
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
    這個月IOS 15就預計要更新了~或許還是有很多人看不懂這次IOS 15更新的內容到底是什麼.為了讓大家能迅速了解這次更新的重點,我們簡單介紹下這次更新的內容究竟有哪些吧~     事先說明,本文章只是提供個懶人包讓大家快速了解IOS 15的消息,如果想知道具體更新的內容請至蘋果官網了解~
Thumbnail
2021年想要保持的小習慣就是,記錄每天的自己有沒有喝到足量的水,所以我使用了健康跟捷徑這兩個蘋果原生的軟體,來真實記錄自己每天的喝水狀況。
Thumbnail
今天要和大家介紹如何用 IOS 內建的螢幕錄影功能搭配 PDF 做教學影片!然後還會介紹不用下載任何 APP 就能編輯影片的超實用功能!