身為 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
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
有很多 iPhone 用戶經常都會反應,手機隨時間用很久了, 或升級 iOS 系統都會出現 iPhone 儲存空間已滿或是系統異常佔用空間問題, 造成 iPhone 手機空間經常出現不足。那到底是什麼原因造成iPhone儲存空間不足? 要怎麼解決 iPhone儲存空間已滿問題 iPhon
Thumbnail
iCloud 照片是一種雲端照片儲存服務,可以將您的照片和影片備份到雲端, 並在您的所有裝置上保持最新。但是,如果您從 iCloud.com 刪除照片或影片, 它們也會從所有開啟 iCloud 照片的裝置中刪除。 因此,在刪除照片或影片之前, 請務必確認您已經將它們備份到本地裝置或其他雲端儲
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
有很多 iPhone 用戶經常都會反應,手機隨時間用很久了, 或升級 iOS 系統都會出現 iPhone 儲存空間已滿或是系統異常佔用空間問題, 造成 iPhone 手機空間經常出現不足。那到底是什麼原因造成iPhone儲存空間不足? 要怎麼解決 iPhone儲存空間已滿問題 iPhon
Thumbnail
iCloud 照片是一種雲端照片儲存服務,可以將您的照片和影片備份到雲端, 並在您的所有裝置上保持最新。但是,如果您從 iCloud.com 刪除照片或影片, 它們也會從所有開啟 iCloud 照片的裝置中刪除。 因此,在刪除照片或影片之前, 請務必確認您已經將它們備份到本地裝置或其他雲端儲
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
在前公司會用這套工具為 Windows 電腦清理暫存檢查問題,但微軟官方一直不信任這類程式,也曾把 CCleaner 列為潛在的垃圾應用程式(PUA),最近發現它的 macOS 版本也像惡意程式一樣,裝了之後竟一直潛伏在背景且無法用正常方式刪除,建議不要安裝此軟體,移除方式請參考這篇: https
Thumbnail
前言 現代人的數位資料真的是非~常多,為了增加容量,常得付費升級手機、雲端、硬碟...等規格,但這真是必要的花費嗎?如果今天有個課程能讓你省下這筆費用且終身受用,你願不願意嘗試呢? 購買課程原因 撰寫文章整理資料時,發現查找照片、檔案不易,即便用搜索功能也因為命名方式沒有系統,跑出結果還是得在耗時篩
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
有很多 iPhone 用戶經常都會反應,手機隨時間用很久了, 或升級 iOS 系統都會出現 iPhone 儲存空間已滿或是系統異常佔用空間問題, 造成 iPhone 手機空間經常出現不足。那到底是什麼原因造成iPhone儲存空間不足? 要怎麼解決 iPhone儲存空間已滿問題 iPhon
Thumbnail
iCloud 照片是一種雲端照片儲存服務,可以將您的照片和影片備份到雲端, 並在您的所有裝置上保持最新。但是,如果您從 iCloud.com 刪除照片或影片, 它們也會從所有開啟 iCloud 照片的裝置中刪除。 因此,在刪除照片或影片之前, 請務必確認您已經將它們備份到本地裝置或其他雲端儲
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
有很多 iPhone 用戶經常都會反應,手機隨時間用很久了, 或升級 iOS 系統都會出現 iPhone 儲存空間已滿或是系統異常佔用空間問題, 造成 iPhone 手機空間經常出現不足。那到底是什麼原因造成iPhone儲存空間不足? 要怎麼解決 iPhone儲存空間已滿問題 iPhon
Thumbnail
iCloud 照片是一種雲端照片儲存服務,可以將您的照片和影片備份到雲端, 並在您的所有裝置上保持最新。但是,如果您從 iCloud.com 刪除照片或影片, 它們也會從所有開啟 iCloud 照片的裝置中刪除。 因此,在刪除照片或影片之前, 請務必確認您已經將它們備份到本地裝置或其他雲端儲
Thumbnail
很多 Apple 用戶都很喜歡透過內建備忘錄App來筆記, 要是不小心在 iOS 或 iPadOS 備忘錄內紀錄不見、寫錯字或打錯字,要怎麼替 iPad 或 iPhone 備忘錄還原上一步呢? 要是不小心在備忘錄內消失紀錄, 可以利用本篇分享的四招 iPad iPhone備忘錄還原上一步技
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
在前公司會用這套工具為 Windows 電腦清理暫存檢查問題,但微軟官方一直不信任這類程式,也曾把 CCleaner 列為潛在的垃圾應用程式(PUA),最近發現它的 macOS 版本也像惡意程式一樣,裝了之後竟一直潛伏在背景且無法用正常方式刪除,建議不要安裝此軟體,移除方式請參考這篇: https
Thumbnail
前言 現代人的數位資料真的是非~常多,為了增加容量,常得付費升級手機、雲端、硬碟...等規格,但這真是必要的花費嗎?如果今天有個課程能讓你省下這筆費用且終身受用,你願不願意嘗試呢? 購買課程原因 撰寫文章整理資料時,發現查找照片、檔案不易,即便用搜索功能也因為命名方式沒有系統,跑出結果還是得在耗時篩