Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

為 macOS 匯出

也參考

這個頁面描述的是如何將 Godot 專案匯出到 macOS。如果你想要找的是從源碼編譯編輯器或匯出範本二進位檔案,請閱讀 doc_compiling_for_osx

macOS App 會被匯出為 .app 組合包,這是一個具有特殊結構的資料夾,裡面存放著可執行檔、庫,以及所有專案檔案。這個組合包可以原樣匯出,或者打包到 ZIP 歸檔檔或 DMG 磁片對應檔中(只有在運作 macOS 的電腦上進行匯出時才支援)。

系統需求

  • 下載 Godot 匯出樣板。使用 Godot 選單:[編輯器] > [管理匯出樣板]

  • 應當在匯出選項的 應用 部分中設定有效且唯一的 組合包識別字

警告

匯出的專案如果沒有進行程式碼簽章和公證,那麼如果是從未知來源下載到的,就會被“門禁”(Gatekeeper)阻攔。詳情請參閱:ref:`在 macOS 上運作 Godot 應用 <doc_running_on_macos>`頁面。

視窗環境與作業系統整合

預設情況下,macOS 只會運作經過簽章和公證的應用程式。如果你使用了其他簽章配置,替代方案請參閱:ref:在 macOS 上運作 Godot 應用 <doc_running_on_macos>

要公證 App,你**必須**持有有效的 Apple 開發者 ID 憑證

如果你有 Apple 開發者 ID 憑證

安裝 Xcode <https://developer.apple.com/xcode/>`__ 命令列工具並開啟 Xcode 至少一次或執行 sudo xcodebuild -license Accept 命令接受許可協議。

簽署匯出的應用程式

  • 在“程式碼簽章 > 程式碼設計”選項中選擇“Xcode 程式碼設計”。

  • 在「程式碼簽署 > 身分」部分設定有效的 Apple ID 憑證身分(憑證「通用名稱」)。

公證匯出的應用程式

  • 在「公證 > 公證」選項中選擇「Xcode altool」。

  • 要對 App 進行公證,你必須禁用 Debugging 授權。

  • 設定有效的 Apple ID 登入/應用程式。特定密碼或「App Store Connect <https://developer.apple.com/documentation/appstoreconnectapi>`__ API UUID /「公證」區段中的金鑰。

你可以使用 xcrun notarytool history 命令檢查公證狀態,使用 xcrun notarytool log {ID} 命令下載公證紀錄。

如果你在公證過程中遇到了問題,請在 Resolving common notarization issues 查看更多資訊。

完成公證後,請將`票證裝訂 <https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow>`__到匯出的專案上。

如果你有 Apple 開發者 ID 憑證

安裝`PyOxidizer rcodesign <https://github.com/indygreg/apple-platform-rs/tree/main/apple-codesign>``__,並在``編輯器設定>匯出'中設定``rcodesign``的路徑> macOS > rcodesign``。

簽署匯出的應用程式

  • 在「程式碼簽章> Codesign」選項中選擇「PyOxidizer rcodesign」。

  • 在「程式碼簽署」部分設定有效的 Apple ID PKCS #12 憑證檔案和密碼。

公證匯出的應用程式

您可以使用「rcodesign notary-log」指令檢查公證狀態。

公證完成後,使用「rcodesignstaple」指令將票證裝訂到匯出的專案。

如果你沒有 Apple 開發者 ID 憑證

  • 在“程式碼簽章 > 程式碼設計”選項中選擇“內建(僅臨時)”。

  • 在「公證 > 公證」選項中選擇「停用」。

保持 Code Signing 啟用並將 Identity 選項留空(在運作 macOS 的電腦上匯出時可用,這個選項在其他平臺上是不可見的)。這樣 Godot 就會使用 Ad-hoc 簽章,讓最終使用者能夠更方便地運作匯出的 App,詳情請見:ref:在 macOS 上運作 Godot App <doc_running_on_macos> 頁面。

簽名選項

最佳化

說明

節點

用於程式碼簽章的工具。

身份

簽章主體的“全名”或“通用名”,儲存在 macOS 鑰匙串中。1 2

憑證檔案

PKCS #12 憑證檔。 2

憑證密碼

憑證檔案的密碼。 2

自訂選項

傳遞給程式碼簽署工具的命令列參數陣列。

1

這個選項僅在運作 macOS 的電腦上匯出時可見。

2(1,2)

這些選項僅在使用 PyOxidizer rcodesign 簽章時可見。

Animation - 動畫選項

最佳化

說明

Animation - 動畫選項

用於公證的工具。

Apple ID 名稱

Apple ID 帳戶名稱(郵箱地址)

Apple ID 密碼

Apple ID 的 App 專用密碼。請參閱`《使用 App 專用密碼》 <https://support.apple.com/zh-cn/HT204397>`__啟用雙重認證並建立 App 密碼。3

Apple 團隊 ID

團隊 ID,如果你的 Apple ID 屬於多個團隊

API UUID

Apple App Store Connect API 頒發者 UUID。

API 金鑰

Apple App Store Connect API 金鑰。

備註

您應該設定 Apple ID 名稱/密碼或 App Store Connect API UUID/金鑰。

3(1,2,3)

這個選項僅在運作 macOS 的電腦上匯出時可見。

詳情請參閱 Notarizing macOS Software Before Distribution

授權

強化運作時授權

強化運作時授權(Hardened Runtime entitlements)管理的是安全性選項和資源存取策略。詳情請參閱 Hardened Runtime

授權

說明

Allow JIT Code Execution 3

允許為 JIT 程式碼建立可寫可執行的記憶體。如果你正在使用動態或能夠自我修改原生程式碼的外掛程式,請根據外掛程式文件啟用它們。

Allow Unsigned Executable Memory 3

允許建立沒有 JIT 限制的可寫可執行的記憶體。如果你正在使用動態或能夠自我修改原生程式碼的外掛程式,請根據外掛程式文件啟用它們。

環境變數

允許 App 使用動態連結器環境變數注入程式碼。如果你正在使用動態或能夠自我修改原生程式碼的外掛程式,請根據外掛程式文件啟用它們。

停用庫校驗

允許 App 載入任意庫和框架。如果你使用 GDNative 外掛程式和 Ad-hoc 簽章,或者想要支援使用者提供的外部外掛程式,請啟用。

音源輸入

請在需要使用麥克風或者其他音訊輸入源時啟用。啟用時,你應該還要在 privacy/microphone_usage_description 中提供用途資訊。

相機

請在需要使用攝像頭時啟用。啟用時,你應該還要在 privacy/camera_usage_description 中提供用途資訊。

位置

請在需要使用位置服務時啟用。啟用時,你應該還要在 privacy/location_usage_description 中提供用途資訊。

地址簿

4 請在需要存取使用者的位址簿時啟用。啟用時,你應該還要在 privacy/address_book_usage_description 中提供用途資訊。

日曆

4 請在需要存取使用者的日歷時啟用。啟用時,你應該還要在 privacy/calendar_usage_description 中提供用途資訊。

素材庫

4 請在需要存取使用者的照片圖庫時啟用。啟用時,你應該還要在 privacy/photos_library_usage_description 中提供用途資訊。

Apple 活動

4 請在需要允許 App 向其他 App 發送 App 事件時啟用。

除錯

5 你可以臨時啟用這個授權來對匯出的 App 使用原生除錯器(GDB、LLDB)。生產匯出中應該禁用這個授權。

4(1,2,3)

Allow JIT Code ExecutionAllow Unsigned Executable MemoryAllow DYLD Environment Variables 授權在 Godot Mono 匯出中始終啟用,在匯出選項中不可見。

5(1,2,3,4)

Godot 並不支援這些功能的開箱即用,請在使用需要用到它們的外掛程式時啟用。

6

要對 App 進行公證,你必須禁用 Debugging 授權。

App 沙盒授權

App 沙盒會限制對使用者資料、網路、裝置的存取。沙盒 App 無法存取檔案系統的大部分位置,無法使用自訂檔對話方塊,也無法執行 .app 組合包以外的可執行檔(通過 OS.executeOS.create_process)。詳情請參閱 App Sandbox

備註

要通過 App Store 分發 App,必須啟用 App 沙盒。

授權

說明

已啟用

啟用 App 沙盒。

網路伺服器

允許 App 監聽入站網路請求。

網路客戶端

允許 App 監聽出站網路請求。

裝置 USB

允許 App 與 USB 裝置互動。使用有線控制器需要這項授權。

裝置藍芽

允許 App 與藍牙裝置互動。使用無線控制器需要這項授權。

檔案結構

允許對使用者的“ Downloads”資料夾進行讀寫。

檔案結構

允許對使用者的“ Pictures”資料夾進行讀寫。

檔案結構

允許對使用者的“ Music”資料夾進行讀寫。

檔案結構

允許對使用者的“ Movies”資料夾進行讀寫。

刪除所選

允許對使用者的任意資料夾進行讀寫。要獲取存取權限,必須由使用者在原生檔對話方塊中選中該資料夾。

Executable

要在 App 組合包中嵌入的輔助可執行檔列表。沙盒 App 僅限於執行這些可執行檔。

7(1,2,3,4,5)

針對不同的資料夾,你還可以通過 privacy/*_folder_usage_description 選項提供用途資訊。

備註

選擇自訂授權檔即可覆蓋預設授權,此時其他所有授權都會被忽略。

環境變數

您可以使用下列環境變數在編輯器外部設定匯出選項。在匯出過程中,這些值會覆寫您在匯出選單中設定的值。

環境變數

匯出選項

環境變數

加密/加密金鑰

GODOT_SCRIPT_ENCRYPTION_KEY

選項/程式碼設計/憑證檔案

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

選項/程式碼設計/憑證密碼

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

選項/程式碼設計/配置檔案

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

選項/公證/API UUID

GODOT_MACOS_NOTARIZATION_API_UUID

選項/公證/API 金鑰

GODOT_MACOS_NOTARIZATION_API_KEY

選項/公證/API 金鑰 ID

GODOT_MACOS_NOTARIZATION_API_KEY_ID

選項/公證/Apple ID 名稱

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

選項/公證/Apple ID 密碼

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD