Mac遇到「無法安全開啟App」問題的解決方式
0
Last Updated on 2025-11-16
當你在 macOS 上下載工具、字幕檔或從 GitHub 抓下開源應用程式時,是否也常遇到「明明只是正常檔案,卻完全打不開」的情況?系統跳出警告、拒絕執行,甚至連「Open Anyway」都不給你按,讓你不知道到底是哪裡出了問題。如果你也正被這些「無法驗證開發者」「Apple 無法檢查是否包含惡意軟體」的訊息卡住,那麼這篇文章會帶你一步一步理解 Gatekeeper 的原理,並教你如何在安全前提下,真正解決 mac 無法開啟程式或檔案的問題。
許多 macOS 使用者會從 App Store 以外的來源下載應用程式,例如 GitHub 上提供的中文文字處理工具、電子書閱讀器相關工具或各式開源軟體。
然而,macOS 有一套稱為 Gatekeeper 的安全機制,用來阻擋未經 Apple 驗證的應用程式。這導致即便你只是下載字幕(srt)、影片(mp4)或簡單的工具,都可能出現無法開啟的情況。
遇到這類問題時,macOS 通常會跳出提示:
“Apple could not verify [some app] is free of malware that may harm your Mac or compromise your privacy.”
中文版為:「Apple 無法檢查是否包含惡意軟體」。

調整「隱私與安全」設定可以解決部分問題
一般情況下,你可以前往 系統設定 → 隱私與安全(Privacy & Security),在最下方的安全性選項中調整允許來源。預設通常設定為「App Store」,你可以改成:
- App Store 與已知的開發者(最常用)
- Anywhere(允許任何來源)部分舊版本 macOS 才有

選擇「Anywhere」確實能一勞永逸解決許多封鎖問題,但風險也最高,一些惡意應用程式可能在你不知情的情況下被允許執行。而且在 macOS 的更新之後,該選項通常也不會再出現,因此無法長期依賴。
單一檔案被封鎖時的做法
如果只是某個檔案,例如我想打開《Milet – inside you》的字幕檔(srt),雙擊後卻顯示無法開啟,只要回到隱私與安全,你會看見系統顯示「已阻擋某某檔案」。此時只要按下 「仍要打開(Open Anyway)」 就能順利開啟這個單一檔案。

但如果是在 Terminal 執行的工具,就不會出現「Open Anyway」,例如下載的是包成可執行檔的工具(exe、shell、wrapper、打包好的 script 或自行編譯的工具)。
這類程式並不是靠「雙擊」啟動,而是使用 Terminal 來執行,因此 macOS 不會跳出安全性提示,你也看不到「Open Anyway」按鈕。
這種情況就必須用更進階的方法解除封鎖。
使用 Terminal 指令解除 macOS 封鎖(codesign + xattr)
解法是透過兩組 Terminal 指令:
codesign --force --deep --sign - "FILE_NAME"
xattr -d -r com.apple.quarantine "FILE_NAME"
例如:
codesign --force -deep -sign - "/Users/macuser/Downloads/中文字體簡繁處理工具"
xattr -d -r com.apple.quarantine "/Users/macuser/Downloads/中文字體簡繁處理工具"
這兩行指令的作用,是讓 macOS 接受一個原本 未受信任 的應用程式。
第一行會為程式重新加上一個 ad-hoc 簽章,讓系統認為它「至少已簽署過」,不至於被直接擋下。第二行則會刪除 macOS 自動加上的 quarantine(隔離標記),避免 Gatekeeper 因為來源不明而阻擋執行。
什麼情況會用到這種方式?
這類方式常見於以下場景:
- 自行編譯但尚未加入正式開發者簽章的程式
- 從 GitHub 下載、但沒有經過 Apple notarize 的工具
- 某些舊型 exe/script 包裝器需要在 macOS 上執行
- 系統更新後無法再使用「Anywhere」選項
- 特殊工具被 Gatekeeper 錯誤判定為高風險
也有人把這方法用在破解或未授權軟體上,但這類風險極高,可能導致惡意程式執行,務必謹慎。
No Comments