NythyCleaner
← 部落格

如何在 Mac 上檢查應用程式更新 — 所有來源一站式搞定

9 分鐘閱讀
#應用程式-更新#macos#homebrew#sparkle#維護#開發者

如何在 Mac 上檢查應用程式更新 — 所有來源一站式搞定

讓您的 Mac 應用程式保持最新狀態對於安全性、效能和相容性至關重要。但 macOS 沒有一個統一的地方可以顯示所有應用程式的更新。App Store 管理自己的目錄,Homebrew 透過終端機管理套件,基於 Sparkle 的應用程式獨立檢查,而 Electron 應用程式則依賴 GitHub 發布。這讓您需要處理多個工具才能知道哪些應用程式需要更新。

本指南將解釋 Mac 應用程式從何處獲取更新、如何手動檢查每個來源,以及 NythyCleaner 如何透過一次掃描將所有內容整合在一起 — 包括 npm、pip 和 Composer 依賴項等開發者套件。

問題:macOS 上的更新是碎片化的

每個 Mac 應用程式都有不同的更新機制,具體取決於其安裝和建置方式:

  • App Store 應用程式 — 透過 Mac App Store(系統設定或 App Store 應用程式)更新。
  • Homebrew 套件 — 透過終端機中的 brew upgrade --cask 更新。
  • 基於 Sparkle 的應用程式 — 像 Firefox、VLC 或 Sketch 等應用程式包含 Sparkle 框架並檢查自己的 RSS 訂閱。
  • Electron / GitHub 應用程式 — 像 VS Code、Discord 或 Notion 等應用程式檢查 GitHub Releases 以獲取新版本。
  • 開發者套件 — npm、pip、Composer、CocoaPods 和其他套件管理器都有各自的 outdated 命令。

大多數使用者只檢查其中一兩個來源,導致數十個應用程式默默地運行過時版本 — 有時還帶有已知的安全漏洞。

方法 1:手動檢查每個來源

App Store

開啟 App Store → 更新 或前往 系統設定 → 一般 → 軟體更新(針對 macOS 本身)。這僅涵蓋透過 App Store 安裝的應用程式。

Homebrew

如果您使用 Homebrew,請執行:

brew update
brew outdated --cask

這會列出有新版本可用的套件。要升級其中一個:

brew upgrade --cask <app-name>

基於 Sparkle 的應用程式

大多數 Sparkle 應用程式會在啟動時自動檢查更新。您也可以從應用程式選單中手動觸發檢查:應用程式名稱 → 檢查更新。目前沒有集中式的方法可以從終端機一次檢查所有 Sparkle 應用程式。

Electron / GitHub 應用程式

對於在 App Store 之外發布的 Electron 應用程式,您需要訪問每個應用程式的 GitHub 發布頁面,並將版本號與您已安裝的版本進行比較。這既繁瑣又很少有人做。

開發者套件

每個套件管理器都有自己的命令:

npm outdated                  # Node.js
pip list --outdated           # Python
composer outdated             # PHP
pod outdated                  # CocoaPods
brew outdated                 # Homebrew formulae

在多個專案中執行這些命令需要時間,而且您需要記住哪些專案使用哪些管理器。

手動檢查的問題

這種方法需要終端機知識,單獨檢查五個或更多來源,並記住定期執行。大多數人根本不願意這麼做 — 這正是過時應用程式和易受攻擊的依賴項累積的原因。

方法 2:使用 NythyCleaner 掃描所有內容

NythyCleaner 在「系統維護」部分包含一個「應用程式更新」掃描器,可以一次性檢查所有更新來源。無需終端機。

掃描運作方式

當您點擊「檢查更新」時,NythyCleaner 會依序執行六個偵測階段:

階段檢查內容方式
Homebrew (已安裝)透過 brew install --cask 安裝的應用程式讀取 brew info --cask --installed --json 並按套件名稱匹配應用程式
Sparkle內建 Sparkle 更新訂閱的應用程式從每個應用程式的 Info.plist 讀取 SUFeedURL 並獲取 RSS 訂閱
Electron / GitHub具有 GitHub 儲存庫或 Squirrel 更新器的應用程式查詢 GitHub Releases API 以獲取最新版本
App Store來自 Mac App Store 的應用程式偵測 App Store 收據和版本資訊
Homebrew (查詢)未透過 Homebrew 安裝的應用程式從應用程式名稱推導可能的套件標記並查詢 Homebrew 以查找可用版本
開發者套件npm、pip、Composer、CocoaPods 等對每個偵測到的專案執行相應的 outdated 命令

每個階段都會即時報告進度,因此您可以查看目前正在掃描哪個來源。

掃描後您會看到什麼

結果以清晰的列表形式呈現:

  • 有更新可用 — 應用程式有新版本。顯示在頂部,包含已安裝和可用的版本號。
  • 最新版本 — 應用程式已是最新版本。
  • 需要檢查 — 應用程式需要手動檢查(例如,無法自動更新的開發者套件)。
  • 未偵測到更新來源NythyCleaner 無法找到此應用程式的任何更新機制。這些會單獨列出,以便您知道哪些應用程式需要手動檢查。

一鍵式 Homebrew 更新

對於由 Homebrew 管理的應用程式,NythyCleaner 會在列表中直接顯示一個「安裝」按鈕。點擊它會在後台執行 brew upgrade --cask <token> — 無需終端機。完成後您會收到確認,並且該應用程式會從過時列表中消失。

NythyCleaner 使用智慧匹配系統將您已安裝的應用程式連結到其 Homebrew 套件標記。它處理棘手的情況,例如:

  • Docker (com.docker.dockerdocker)
  • VS Code (com.microsoft.VSCodevisual-studio-code)
  • Google Chrome (com.google.Chromegoogle-chrome)

超過 60 個常用應用程式具有硬編碼映射,模糊匹配器透過比較標準化的應用程式名稱、套件名稱和顯示名稱與套件元數據來處理其餘部分。

Sparkle 訂閱偵測

許多流行的 Mac 應用程式 — 包括那些直接從開發者網站下載的應用程式 — 使用 Sparkle 框架 進行更新。NythyCleaner 讀取每個應用程式的 Info.plist 以查找 SUFeedURL,獲取 RSS appcast,並將最新版本與已安裝的版本進行比較。

這涵蓋了以下應用程式:

  • Sketch, Affinity Designer, Pixelmator Pro
  • iTerm2, Transmit, BBEdit
  • 許多獨立 Mac 應用程式

Electron 和 GitHub 偵測

對於基於 Electron 的應用程式以及透過 GitHub 發布的應用程式,NythyCleaner 會尋找:

  • 嵌入在應用程式套件中的 GitHub 儲存庫 URL
  • Squirrel 更新器框架(許多 Electron 應用程式使用)

然後它會查詢 GitHub Releases API 以查找最新的版本標籤,並將其與已安裝的版本進行比較。

開發者套件掃描

如果您是開發者,NythyCleaner 還會掃描您的專案,查找多個套件管理器中過時的依賴項:

  • npm / yarn / pnpm — Node.js 專案
  • pip — Python 套件
  • Composer — PHP 專案
  • CocoaPods — iOS/macOS 專案
  • Homebrew formulae — 命令列工具

每個過時的套件都會顯示當前和最新版本。您可以單獨更新套件,或使用「全部更新」將整個專案更新到最新狀態。

安全審計

除了版本檢查之外,NythyCleaner 還可以對您的開發者依賴項執行「安全審計」。這會掃描您已安裝套件中的已知漏洞 — 類似於 npm auditpip-audit,但一次性涵蓋所有偵測到的專案和套件管理器。

易受攻擊的套件會標記嚴重性等級和可操作的描述,因此您確切知道哪些依賴項需要關注。

常見問題

NythyCleaner 會取代 Homebrew 或 App Store 嗎?

不會。NythyCleaner 從這些來源讀取資訊 — 它不會取代它們。Homebrew 更新在後台透過 brew upgrade 執行。App Store 更新仍然透過 Mac App Store 進行。NythyCleaner 只是集中顯示並使 Homebrew 更新變成一鍵式操作。

我應該多久檢查一次更新?

每週一次是個好習慣。NythyCleaner 會快取掃描結果,因此在同一會話中重複檢查是即時的。您可以隨時使用刷新按鈕強制進行新的掃描。

它會自動更新應用程式嗎?

NythyCleaner 不會自動更新應用程式。每次更新都需要您的明確操作 — 無論是點擊 Homebrew 應用程式的「安裝」按鈕,還是被引導到其他來源的正確更新頁面。這是故意的:您始終掌握控制權。

如果應用程式沒有更新來源怎麼辦?

沒有可偵測更新機制的應用程式會列在單獨的「不支援」部分。這通常包括非常舊的應用程式、客製化企業工具或沒有任何版本檢查基礎設施的應用程式。對於這些應用程式,您需要手動檢查開發者的網站。

我可以一次更新所有專案的開發者套件嗎?

可以。NythyCleaner 會偵測您機器上的專案,並允許您按專案或按管理器更新套件。「全部更新」按鈕會更新選定專案中所有過時的套件。

掃描需要網路連線嗎?

是的。檢查 Homebrew、Sparkle 訂閱、GitHub 發布和 App Store 資料都需要網路連線。開發者套件檢查也可能需要網路進行註冊表查詢。

此功能包含在免費版本中嗎?

掃描和查看結果是免費的。安裝更新(Homebrew 一鍵式、開發者套件更新)需要專業版訂閱。

結論

讓 Mac 上的每個應用程式保持最新狀態不應該需要五種不同的工具和一個終端機。NythyCleaner 一次掃描 Homebrew、Sparkle、GitHub、App Store 和您的開發者依賴項 — 然後讓您無需離開應用程式即可根據結果採取行動。

無論您是只想知道應用程式是否為最新版本的普通使用者,還是管理數十個跨專案套件的開發者,「應用程式更新」掃描器都能為您提供一個單一、清晰的視圖,顯示所有需要關注的內容。