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 憑證檔案和密碼。
公證匯出的應用程式¶
在「公證 > 公證」選項中選擇「PyOxidizer rcodesign」。
要對 App 進行公證,你必須禁用
Debugging
授權。在「Notarization」部分設定有效的「App Store Connect <https://developer.apple.com/documentation/appstoreconnectapi>`__ API UUID/金鑰」。
您可以使用「rcodesign notary-log」指令檢查公證狀態。
公證完成後,使用「rcodesignstaple」指令將票證裝訂到匯出的專案。
如果你沒有 Apple 開發者 ID 憑證¶
在“程式碼簽章 > 程式碼設計”選項中選擇“內建(僅臨時)”。
在「公證 > 公證」選項中選擇「停用」。
保持 Code Signing
啟用並將 Identity
選項留空(在運作 macOS 的電腦上匯出時可用,這個選項在其他平臺上是不可見的)。這樣 Godot 就會使用 Ad-hoc 簽章,讓最終使用者能夠更方便地運作匯出的 App,詳情請見:ref:在 macOS 上運作 Godot App <doc_running_on_macos> 頁面。
簽名選項¶
最佳化 |
說明 |
---|---|
節點 |
用於程式碼簽章的工具。 |
身份 |
|
憑證檔案 |
PKCS #12 憑證檔。 2 |
憑證密碼 |
憑證檔案的密碼。 2 |
自訂選項 |
傳遞給程式碼簽署工具的命令列參數陣列。 |
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/金鑰。
授權¶
強化運作時授權¶
強化運作時授權(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)。生產匯出中應該禁用這個授權。 |
App 沙盒授權¶
App 沙盒會限制對使用者資料、網路、裝置的存取。沙盒 App 無法存取檔案系統的大部分位置,無法使用自訂檔對話方塊,也無法執行 .app
組合包以外的可執行檔(通過 OS.execute
和 OS.create_process
)。詳情請參閱 App Sandbox。
備註
要通過 App Store 分發 App,必須啟用 App 沙盒。
授權 |
說明 |
---|---|
已啟用 |
啟用 App 沙盒。 |
網路伺服器 |
允許 App 監聽入站網路請求。 |
網路客戶端 |
允許 App 監聽出站網路請求。 |
裝置 USB |
允許 App 與 USB 裝置互動。使用有線控制器需要這項授權。 |
裝置藍芽 |
允許 App 與藍牙裝置互動。使用無線控制器需要這項授權。 |
檔案結構 |
允許對使用者的“ Downloads”資料夾進行讀寫。 |
檔案結構 |
允許對使用者的“ Pictures”資料夾進行讀寫。 |
檔案結構 |
允許對使用者的“ Music”資料夾進行讀寫。 |
檔案結構 |
允許對使用者的“ Movies”資料夾進行讀寫。 |
刪除所選 |
允許對使用者的任意資料夾進行讀寫。要獲取存取權限,必須由使用者在原生檔對話方塊中選中該資料夾。 |
Executable |
要在 App 組合包中嵌入的輔助可執行檔列表。沙盒 App 僅限於執行這些可執行檔。 |
備註
選擇自訂授權檔即可覆蓋預設授權,此時其他所有授權都會被忽略。
環境變數¶
您可以使用下列環境變數在編輯器外部設定匯出選項。在匯出過程中,這些值會覆寫您在匯出選單中設定的值。
匯出選項 |
環境變數 |
---|---|
加密/加密金鑰 |
|
選項/程式碼設計/憑證檔案 |
|
選項/程式碼設計/憑證密碼 |
|
選項/程式碼設計/配置檔案 |
|
選項/公證/API UUID |
|
選項/公證/API 金鑰 |
|
選項/公證/API 金鑰 ID |
|
選項/公證/Apple ID 名稱 |
|
選項/公證/Apple ID 密碼 |
|