解決「Google Chrome for Testing.app」已損毀,無法打開。 你應該將其丟到「垃圾桶」的問題

ChromeDriver 版本 115 之後,需要額外下載「Google Chrome for Testing.app」。開啟「Google Chrome for Testing.app」卻遇到錯誤訊息:「Google Chrome for Testing.app」已損毀,無法打開。 你應該將其丟到「垃圾桶」。可以透過 xattr 指令清除擴展屬性解決。

Transportation Bug
Photo by Evan Kirby on StockSnap


錯誤狀況

從 Chrome for Testing availability dashboard 下載「chromedriver」與「Google Chrome for Testing.app」。直接點選兩下開啟「Google Chrome for Testing.app」卻遇到錯誤訊息:

「Google Chrome for Testing.app」已損毀,無法打開。 你應該將其丟到「垃圾桶」。

「Google Chrome for Testing.app」已損毀,無法打開。 你應該將其丟到「垃圾桶」

解決方式

1. 開啟終端機 APP 或類似的 APP,例如 iTerm

2. 切換到「Google Chrome for Testing.app」下載後的資料夾,如果是個人下載目錄,請在終端機 APP 輸入

cd ~/Downloads/

3. 請在終端機 APP 輸入

xattr -cr 'Google Chrome for Testing.app'

4. 出現對話視窗「Google Chrome for Testing」想使用你在鑰匙圈的 「Chromium Safe Storage」裡儲存的機密資訊。

因為沒打算讓「Google Chrome for Testing」使用鑰匙圈,直接按「拒絕」即可

5. 再重新點選兩下「Google Chrome for Testing.app」,就可以順利開啟

「Google Chrome for Testing.app」,就可以順利開啟

問題原因

「Google Chrome for Testing.app」在 GitHub 的專案文件提到

出現這種情況是因為 macOS Gatekeeper (「門禁」安全機制)設置了一個擴展屬性,將 ZIP 檔案及其中的任何檔案標記為「透過瀏覽器下載」,因此具有潛在危險。要解決這個問題,請遞迴地刪除擴展屬性。

使用 xattr 顯示可以看到擴展屬性

% xattr -l 'Google Chrome for Testing.app'

com.apple.provenance:

com.apple.quarantine: 0083;00000000;Keka;E8B6XXXX-XXXX-XXX-XXX-XXXXXXXXXXXX

透過以下指令則可刪除擴展屬性

xattr -cr 'Google Chrome for Testing.app'

參考資料

  1. GoogleChromeLabs/chrome-for-testing
  2. xattr Man Page - macOS - SS64.com

留言