macOS Gatekeeper 預設僅允許安裝 App Store 應用與已簽名開發者應用。遇到「App 損壞,無法打開。您應將它移到廢紙簍」或「無法打開「App」,因為它來自身分不明的開發者」提示,核心解法是啟用「任何來源」選項。
Apple 隱藏了此選項,需透過終端機啟用:
sudo spctl --master-disable
輸入密碼後,「任何來源」選項即會出現在「隱私權與安全性」→「安全性」區塊。此指令關閉 Gatekeeper 核心驗證機制,僅建議在必要時暫時啟用,安裝完成後可執行 sudo spctl --master-enable 恢復預設保護。
| 格式 | 副檔名 | 安裝方式 | 特點 |
|---|---|---|---|
| 磁碟映像 | .dmg | 雙擊掛載 → 拖拽 App 至 Applications 資料夾 → 推出映像 | 最常見、綠色免安裝、可驗證簽名 |
| 安裝包 | .pkg | 雙擊執行安裝精靈 → 輸入密碼 → 完成 | 系統級元件、核心擴充套件、需執行安裝腳本 |
| 壓縮包 | .zip / .tar.gz | 解壓縮 → 拖拽 App 至 Applications | 無安裝程式、需手動管理 |
| App Store | — | App Store 搜尋 → 取得/購買 → 自動安裝至 Applications | 自動更新、沙盒隔離、審核機制 |
不想全域開啟「任何來源」,僅允許特定 App:
# 移除 App 的隔離屬性 (quarantine attribute)
sudo xattr -rd com.apple.quarantine /Applications/TargetApp.app
# 或僅移除特定檔案
xattr -d com.apple.quarantine /path/to/file
此法精準、安全、不降低整體系統防護等級,強烈推薦優先使用。
codesign -dv /Applications/App.app。pkgutil --forget 移除收據、或用 AppCleaner 類工具清理。sudo spctl --master-enable 恢復 Gatekeeper 保護。精準掌控 Gatekeeper,在安全與彈性間找到平衡點。