Skip to content

應用類型與策略對照

應用類型容器分類遷移策略鎖定保護說明
原生 macOS 應用(無自更新)standaloneAppmacOS Stub Portal如 Safari、Finder
Sparkle 自更新應用standaloneAppmacOS Stub Portal如部分獨立開發者應用
Electron 應用(無 app-update.ymlstandaloneAppmacOS Stub Portal如 VS Code
Electron 應用(有 app-update.ymlstandaloneAppmacOS Stub Portal如 Slack、Discord
Electron + Sparkle 混合應用standaloneAppmacOS Stub Portal兩個標誌獨立檢測,同時成立
自定義更新器應用(Chrome、Edge)standaloneAppmacOS Stub Portal通過 LaunchServicesKSProductID 等識別
iOS 應用(Mac 版)standaloneAppiOS Stub Portal圖標從 WrappedBundle 提取,不簽名
Mac App Store 應用standaloneAppmacOS Stub PortalSIP 保護,無法重簽名
單應用容器目錄singleAppContainerWhole App Symlink目錄內僅 1 個 .app,整體符號鏈接
應用套件目錄(如 Office)appSuiteFolderWhole App Symlink視內部應用而定目錄內 2+ 個 .app,整體符號鏈接
.app 路徑Whole App Symlink擴展名不爲 .app 的路徑

⚠️ 關於鎖定保護

當應用被標記爲需要鎖定(needsLock = true)時,AppPorts 在遷移完成後對外部存儲上的應用執行 chflags -R uchg,設置不可變標誌。這會阻止自更新程序刪除或修改外部副本,但也意味着應用無法自行更新。用戶需要在 AppPorts 中手動解鎖後才能進行更新。

💡 自定義更新器應用爲何不鎖定

Chrome、Edge 等使用自定義更新器的應用不會被鎖定。這類應用的更新程序通常會將新版本下載並安裝到本地內部存儲,受到 macOS Stub Portal 的鏈接隔離特性,因此不會破壞外部存儲上的應用文件。

當 AppPorts 檢測到本地內部存儲上的應用版本高於外部存儲上的版本時,會自動爲該應用打上「待遷移」標籤,提示用戶需要重新遷移以同步最新版本。

最近更新