為 macOS 匯出

也參考

本頁說明如何將 Godot 專案匯出到 macOS。如果你想從原始碼編譯編輯器或匯出樣板二進位檔,請參考 在 macOS 上編譯

macOS apps exported with the official export templates are exported as a single "Universal 2" binary .app bundle, a folder with a specific structure which stores the executable, libraries and all the project files. This bundle can be exported as is, packed in a ZIP archive, or packed in a DMG disk image (only supported when exporting from macOS). Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple Silicon) architectures.

警告

Due to file system limitations, .app bundles exported from Windows lack the executable flag and won't run on macOS. Projects exported as .zip are not affected by this issue. To run .app bundles exported from Windows on macOS, transfer the .app to a device running macOS or Linux and use the chmod +x {executable_name} terminal command to add the executable permission. The main executable located in the Contents/MacOS/ subfolder, as well as optional helper executables in the Contents/Helpers/ subfolder, should have the executable permission for the .app bundle to be valid.

系統需求

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

  • 請於匯出選項中的 Application (應用程式)區段設定一個有效且唯一的 Bundle identifier (組合包識別碼)。

警告

若專案匯出時未進行程式碼簽章與公證,並從未知來源下載,將會被 Gatekeeper 阻擋。詳情請參閱 在 macOS 執行 Godot 應用 頁面。

程式碼簽章與公證

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

要公證應用程式,必須 擁有有效的 Apple Developer ID 憑證

若你有 Apple Developer ID 憑證,且於 macOS 匯出

安裝 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 Developer ID 憑證,且於 Linux 或 Windows 匯出

請安裝 PyOxidizer rcodesign,並於「編輯器設定 > 匯出 > macOS > rcodesign」中設定 rcodesign 的路徑。

簽署匯出的應用程式

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

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

公證匯出的應用程式

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

公證完成後,請使用 rcodesign staple 指令將票證裝訂到匯出的專案上。

若你沒有 Apple Developer ID 憑證

  • 程式碼簽章 > Codesign 選項中選擇 內建 (僅 ad-hoc)

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

此時 Godot 將採用 ad-hoc 簽章,讓終端使用者更容易執行匯出的應用。詳情請參見 在 macOS 上執行 Godot 應用 頁面。

簽章選項

最佳化

說明

程式碼簽章

用於程式碼簽章的工具。

身份

簽章身分的「全名」或「通用名稱」,儲存在 macOS 鑰匙圈。 [1]

憑證檔案

PKCS #12 憑證檔案。 [2]

憑證密碼

該憑證檔案的密碼。 [2]

自訂選項

提供給程式碼簽章工具的命令列參數陣列。

公證選項

最佳化

說明

公證

用於公證的工具。

Apple ID 名稱

Apple ID 帳號名稱(電子郵件地址)。 [3]

Apple ID 密碼

Apple ID 的應用程式專用密碼。請參考 使用應用程式專用密碼 以啟用雙重驗證並建立專用密碼。 [3]

Apple 團隊 ID

團隊 ID(「組織單位」),若你的 Apple ID 屬於多個團隊可選填。[3]

API UUID

Apple App Store Connect API 頒發者 UUID。

API 金鑰

Apple App Store Connect API 金鑰。

備註

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

詳情請參閱 Notarizing macOS Software Before Distribution

授權

強化執行階段授權

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

授權

說明

允許 JIT 程式碼執行 [4]

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

允許未簽章可執行記憶體 [4]

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

允許 DYLD 環境變數 [4]

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

停用函式庫驗證

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

音源輸入

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

相機

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

位置

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

地址簿

[5] 啟用後可存取使用者通訊錄,啟用時應在 privacy/address_book_usage_description 選項中提供用途說明。

日曆

[5] 啟用後可存取使用者行事曆,啟用時應在 privacy/calendar_usage_description 選項中提供用途說明。

照片圖庫

[5] 啟用後可存取使用者照片圖庫,啟用時應在 privacy/photos_library_usage_description 選項中提供用途說明。

Apple 活動

[5] 啟用後允許應用程式向其他 app 傳送 Apple 事件。

除錯

[6] 可暫時啟用本授權以便使用原生除錯器(如 GDB、LLDB)除錯匯出的應用程式。正式發行時應停用本授權。

App 沙盒授權

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

備註

若要透過 App Store 發佈應用程式,必須啟用 App 沙盒。

授權

說明

已啟用

啟用 App 沙盒功能。

網路伺服器

啟用後可讓應用程式監聽外部網路連線。

網路客戶端

啟用後可讓應用程式建立對外網路連線。

裝置 USB

啟用後可讓應用程式與 USB 裝置互動。若需支援有線控制器必須啟用本授權。

裝置藍芽

啟用後可讓應用程式與藍牙裝置互動。若需支援無線控制器必須啟用本授權。

檔案下載 [7]

允許讀寫使用者的「下載」資料夾。

檔案圖片 [7]

允許讀寫使用者的「圖片」資料夾。

檔案音樂 [7]

允許讀寫使用者的「音樂」資料夾。

檔案影片 [7]

允許讀寫使用者的「影片」資料夾。

刪除所選

允許讀寫任意資料夾。使用者必須於原生檔案對話框中手動選取該資料夾以獲取權限。

輔助執行檔

嵌入於 app 組合包中的輔助執行檔清單。啟用沙盒後,應用程式僅能執行此清單內的執行檔。

備註

你可以選擇自訂授權檔以覆蓋預設授權,若如此設定,其餘授權選項將會被忽略。

環境變數

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

macOS 匯出環境變數

匯出選項

環境變數

加密/加密金鑰

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

匯出選項

You can find a full list of export options available in the EditorExportPlatformMacOS class reference.