Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

在 macOS 上執行 Godot 應用程式

也參考

這個頁面描述的是在 macOS 上運作 Godot 專案。如果你還沒有匯出專案,請先閱讀 為 macOS 匯出

預設情況下,macOS 僅允許執行已簽章與公證的應用程式。

備註

當從下載資料夾執行應用程式,或應用仍處於隔離狀態時,Gatekeeper 會進行「路徑隨機化」作為安全防護。這會造成應用程式存取相對路徑的失效。若要解決此問題,請將應用程式移動到 /Applications 資料夾。

一般來說,macOS 應用程式應避免依賴應用資料夾的相對路徑。

根據 macOS 應用簽章和分發方法的不同,可能出現下列情況:

App 已簽章並公證,通過 App Store 分發

備註

App 開發者需要加入 Apple 開發者計畫,然後在匯出時配置簽章和公證選項,最後將 App 上傳到 App Store。

應用程式應可直接執行,無需額外使用者操作。

App 已簽章並公證,在 App Store 外分發

備註

應用開發者需加入 Apple 開發者計畫,匯出時設定簽章與公證選項,然後將應用程式以「.DMG」或「.ZIP」檔案方式分發。

首次運作該 App 時,會出現如下對話方塊:

../../_images/signed_and_notarized_0.png

按一下 打開 啟動應用。

如果你看到了如下的警告對話方塊,那麼你的 Mac 是被設定成了只允許來自 App Store 的應用。

../../_images/signed_and_notarized_1.png

要允許協力廠商程式,請打開 系統設定,點擊 安全性與隱私,然後點擊 通用,解鎖設定,然後選擇 App Store 和被認可的開發者

../../_images/sys_pref_0.png

應用程式已簽章(包含 ad-hoc 簽章),但未公證

備註

應用開發者使用自簽憑證或 ad-hoc 簽章(Godot 匯出專案的預設行為)。

首次運作該 App 時,會出現如下對話方塊:

../../_images/signed_0.png

若要執行此應用程式,可暫時覆寫 Gatekeeper 設定:

  • 可前往「系統偏好設定」>「安全性與隱私」>「一般」,然後點選「仍要打開」。

    ../../_images/sys_pref_1.png
  • 或於 Finder 視窗中對應用程式圖示滑鼠右鍵(或按住 Control 點擊),從選單選擇「打開」。

    ../../_images/signed_1.png
  • 於確認對話框點選「打開」。

    ../../_images/signed_2.png
  • 如出現提示請輸入密碼。

另一種方式為完全停用 Gatekeeper。請注意,這會降低電腦安全性,允許任何軟體執行。請於終端機執行 sudo spctl --master-disable,輸入密碼後,任何來源 選項即會出現:

../../_images/macos_allow_from_anywhere.png

請注意,macOS 更新後 Gatekeeper 會自動重新啟用。

應用程式未簽章,僅執行檔由連結器簽章

備註

應用程式使用官方匯出樣板建置,但未簽章。

首次運作該 App 時,會出現如下對話方塊:

../../_images/linker_signed_1.png

若要執行此應用程式,請手動移除 quarantine 擴充檔案屬性:

  • 打開 Terminal.app``(按下 :kbd:`Cmd + Space` 並輸入 ``Terminal)。

  • 切換至存放目標應用程式的資料夾。

    使用 cd 路徑到_app_資料夾 指令,例如若於「下載」資料夾,則輸入 cd ~/Downloads/

  • 執行指令 xattr -dr com.apple.quarantine "Unsigned Game.app" (包含引號及 .app 副檔名)。

應用程式與執行檔皆未簽章(僅適用於 Apple Silicon Mac)

備註

應用程式使用自訂匯出樣板並以 OSXCross 編譯,完全未經簽章。

首次運作該 App 時,會出現如下對話方塊:

../../_images/unsigned_1.png

若要執行此應用程式,你可自行進行 ad-hoc 簽章:

  • 從 App Store 安裝 Xcode,啟動並確認安裝命令列工具。

  • 打開 Terminal.app``(按下 :kbd:`Cmd + Space` 並輸入 ``Terminal)。

  • 切換至存放目標應用程式的資料夾。

    使用 cd 路徑到_app_資料夾 指令,例如若於「下載」資料夾,則輸入 cd ~/Downloads/

  • 執行下列指令:

    xattr -dr com.apple.quarantine "Unsigned Game.app" (包含引號及 .app 副檔名)。

    codesign -s - --force --deep "Unsigned Game.app" (包含引號及 .app 副檔名)。