作為參考,我的 macOS 版本是 Sonoma 14.4.1
當在 Mac 上開啟從非 App Store 下載的軟體時,可能會遇到以下錯誤訊息:
- 「檔案已損毀,無法打開。你應該將其丟到垃圾桶。」
- 「無法打開檔案,因為無法驗證開發者。」
這是因為 macOS 系統中的 Gatekeeper 安全機制默認情況下只允許執行來自 Mac App Store 或有開發者簽名的軟體,以防止未經授權的程式可能帶來的安全風險。
解決方法
方法一、允許來自任何來源的應用程式
如果你確定該應用程式是安全的,但仍然無法打開,可以考慮臨時禁用 Gatekeeper,允許所有來源的應用程式運行。具體操作如下:
打開 系統設定 > 隱私與安全性 > 安全性,在「允許從以下來源下載的應用程式」部分,檢查是否有「任何來源」的選項。
如果有,選擇「任何來源」:
如果沒有這個選項,需要打開 terminal 輸入以下命令,臨時禁用 Gatekeeper:
sudo spctl --master-disable
執行完該命令後,打開 系統設定 > 隱私與安全性,應該會看到「任何來源」選項已啟用。
設置完允許任何來源後重新開啟應用,可能會出現新的錯誤「無法打開檔案,因為無法驗證開發者。」,若遇到的話按照下方的方法能夠解決。
在隱私權與安全性設置強制打開
參考我之前發的這篇文章:macOS 無法打開檔案因為無法驗證開發者 解決方法
打開 設定 > 隱私權與安全性 往下拉會看到 「檔案遭到阻擋無法使用,因為它不是來自已識別的開發者。」,點擊「強制打開」。
強制打開後會多出「打開」的按鈕,點「打開」就可以成功開啟了。
為了確保系統安全,在安裝並運行應用程式後,建議使用下方命令重新啟用 Gatekeeper:
sudo spctl --master-enable
方法二、解除應用的隔離標記
如果方法一都做完了還是無法開啟應用,可以嘗試這個方法。
macOS 會對從網路下載的應用加上「隔離標記」,導致無法啟動應用。用 xattr
命令能夠移除這個標記。
一樣打開 terminal 輸入以下命令(先別急著執行),接著打開 Finder 找到剛剛下載的應用,將應用直接從 Finder 拖移到 terminal 中,命令後方就會直接帶入應用的路徑:
sudo xattr -rd com.apple.quarantine
拖移應用至 terminal 後的命令會像這樣,這時候再執行命令:
sudo xattr -rd com.apple.quarantine /Applications/LINE.app