Up to date

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

Експорт на macOS

Дивись також

This page describes how to export a Godot project to macOS. If you're looking to compile editor or export template binaries from source instead, read Compiling for macOS.

Програми macOS експортуються як пакет .app, це тека з певною структурою, яка зберігає виконуваний файл, бібліотеки та всі файли проекту. Цей пакет можна експортувати як є, упакувати в ZIP-архів, або образ диска DMG (підтримується тільки при експорті на macOS).

Вимоги

  • Завантаження шаблонів експорту Godot. Використовуйте меню Godot: Редактор> Керування шаблонами експортування.

  • Дійсний і унікальний Bundle identifier має бути встановлений у розділі Application параметрів експорту.

Попередження

Проєкти, експортовані без підпису та нотаріального засвідчення коду, будуть заблоковані Gatekeeper, якщо вони завантажені з невідомих джерел, перегляньте сторінку Запуск застосунків Godot на MacOS для отримання додаткової інформації.

Підпис та нотаріальне засвідчення коду

За замовчуванням macOS запускатиме лише підписані та нотаріально завірені програми. Якщо ви використовуєте будь-яку іншу конфігурацію підпису, шукайте обхідний шлях на сторінці Запуск застосунків Godot на macOS.

Щоб нотаріально засвідчити застосунок, ви повинні мати дійсний Сертифікат Apple Developer ID.

If you have an Apple Developer ID Certificate and exporting from macOS

Install Xcode command line tools and open Xcode at least once or run the sudo xcodebuild -license accept command to accept license agreement.

To sign exported app

  • Select Xcode codesign in the Code Signing > Codesign option.

  • Set valid Apple ID certificate identity (certificate "Common Name") in the Code Signing > Identity section.

To notarize exported app

  • Select Xcode altool in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid Apple ID login / app. specific password or App Store Connect API UUID / Key in the Notarization section.

Ви можете використовувати команду xcrun notarytool history, щоб перевірити стан нотаріального засвідчення і скористатися командою xcrun notarytool log {ID} для завантаження логу нотаріальних свідчень.

Якщо у вас виникли проблеми з нотаріальним засвідченням перегляньте Вирішення поширених питань нотаріального засвідчення.

Після завершення нотаріального засвідчення `прикріпіть квиток<https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow>`__ до експортованого проекту.

If you have an Apple Developer ID Certificate and exporting from Linux or Windows

Install PyOxidizer rcodesign, and configure the path to rcodesign in the Editor Settings > Export > macOS > rcodesign.

To sign exported app

  • Select PyOxidizer rcodesign in the Code Signing > Codesign option.

  • Set valid Apple ID PKCS #12 certificate file and password in the Code Signing section.

To notarize exported app

  • Select PyOxidizer rcodesign in the Notarization > Notarization option.

  • Disable the Debugging entitlement.

  • Set valid App Store Connect API UUID / Key in the Notarization section.

You can use the rcodesign notary-log command to check notarization status.

After notarization is completed, use the rcodesign staple command to staple the ticket to the exported project.

Якщо у вас немає сертифіката Apple Developer ID

  • Select Built-in (ad-hoc only) in the Code Signing > Codesign option.

  • Select Disabled in the Notarization > Notarization option.

In this case Godot will use a ad-hoc signature, which will make running an exported app easier for the end users, see the Running Godot apps on macOS page for more information.

Параметри підпису

Опція

Опис

Дизайн

Tool to use for code signing.

Профіль

The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. 1

Certificate File

The PKCS #12 certificate file. 2

Certificate Password

Password for the certificate file. 2

Custom Options

Array of command line arguments passed to the code signing tool.

1

This option is visible only when signing with Xcode codesign.

2(1,2)

These options are visible only when signing with PyOxidizer rcodesign.

Параметри нотаріального засвідчення

Опція

Опис

Notarization

Tool to use for notarization.

Ім'я Apple ID

Apple ID account name (email address). 3

Пароль до Apple ID

Apple ID - пароль для конкретної програми. Щоб увімкнути двофакторну автентифікацію та створити пароль програми, див. розділ Використання паролів для конкретних програм. 3

Apple Team ID

Team ID ("Organization Unit"), if your Apple ID belongs to multiple teams (optional). 3

API UUID

Apple App Store Connect API issuer UUID.

API Key

Apple App Store Connect API key.

Примітка

You should set either Apple ID Name/Password or App Store Connect API UUID/Key.

3(1,2,3)

These options are visible only when notarizing with Xcode altool.

Для більшої інформації дивіться Нотаріальне засвідчення програмного забезпечення macOS перед розповсюдженням.

Права

Дозволи Захищеного виконання

За допомогою дозволів Захищеного виконання можна керувати параметрами безпеки та політикою доступу до ресурсів. Докладніше про них можна дізнатися з розділу Захищене виконання.

Дозволи

Опис

Allow JIT Code Execution 4

Дозволяє створювати записувану та виконувану пам'ять для коду JIT. Якщо використовуються додаткові компоненти з динамічним, або само-змінюваним, рідним кодом, увімкніть їх відповідно до додаткової документації.

Allow Unsigned Executable Memory 4

Дозволяє створювати завантажувальну та виконувану пам'ять без обмежень JIT. Якщо використовуються додаткові компоненти з динамічним або само-змінюваним рідним кодом, увімкніть їх відповідно до додаткової документації.

Allow DYLD Environment Variables 4

Allows app to uss dynamic linker environment variables to inject code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation.

Вимкнути перевірку бібліотеки

Allows app to load arbitrary libraries and frameworks. Enable it if you are using GDExtension add-ons or ad-hoc signing, or want to support user-provided external add-ons.

Звуковий вхід

Увімкніть, якщо вам потрібно використовувати мікрофон, або інші джерела введення звуку, якщо він включений, ви також повинні надати повідомлення про використання в параметрі privacy/microphone_usage_description.

Фотоапарат

Увімкніть, якщо вам потрібно використовувати камеру, якщо вона включена, ви також повинні надати повідомлення про використання в параметрі privacy/camera_usage_description.

Розташування

Увімкніть, якщо вам потрібно використовувати інформацію про місцезнаходження зі служб визначення місцезнаходження, якщо вона включена, ви також повинні надати повідомлення про використання в параметрі privacy/location_usage_description.

Адресна книга

5 Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the privacy/address_book_usage_description option.

Календарі

5 Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the privacy/calendar_usage_description option.

Бібліотека світлин

5 Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the privacy/photos_library_usage_description option.

Події Apple

5 Enable to allow app to send Apple events to other apps.

Діагностика

6 You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export.

4(1,2,3)

Allow JIT Code Execution, Allow Unsigned Executable Memory і Allow DYLD Environment Variables дозволи завжди ввімкнені для експорту Godot Mono, і не відображаються в параметрах експорту.

5(1,2,3,4)

Ці функції не підтримуються Godot з коробки, вмикайте їх, лише якщо ви використовуєте додаткові компоненти, які їх потребують.

6

Щоб засвідчити застосунок, потрібно вимкнути дозвіл Debugging.

Дозвіл Пісочниці застосунку

Пісочниця застосунку обмежує доступ до даних користувачів, мереж і пристроїв. Програми з пісочницею не можуть отримати доступ до більшості файлових систем, не можуть використовувати власні діалогові вікна файлів і виконувати двійкові файли (за допомогою OS.execute і OS.create_process) за межами пакета .app. Докладніше про це можна дізнатися з Пісочниця застосунку.

Примітка

Щоб розповсюдити застосунок через App Store, потрібно ввімкнути Пісочницю застосунку.

Дозволи

Опис

Увімкнено

Вмикає пісочницю застосунку.

Мережевий сервер

Увімкніть, щоб дозволити програмі прослуховувати вхідні мережні підключення.

Клієнт мережі

Увімкніть, щоб дозволити програмі встановлювати вихідні мережні підключення.

USB пристрою

Увімкніть, щоб застосунок міг взаємодіяти з USB-пристроями. Цей дозвіл необхідний для використання дротових контролерів.

Bluetooth пристрою

Увімкніть, щоб дозволити програмі взаємодіяти з пристроями Bluetooth. Цей дозвіл необхідний для використання бездротових контролерів.

Files Downloads 7

Надає доступ для читання, або запису, папки користувача "Завантаження".

Files Pictures 7

Дозволяє читати, або записувати, папку користувача "Зображення".

Files Music 7

Дозволяє читати, або записувати, папку користувача "Музика".

Files Movies 7

Дозволяє читати, або записувати, папку користувача "Фільми".

Files User Selected 7

Дозволяє читати, або записувати, довільну теку. Щоб отримати доступ, користувач повинен вибрати теку з рідного діалогового вікна файлів.

Допоміжний виконуваний файл

Список допоміжних виконуваних файлів, вбудованих у пакет програм. Застосунок із пісочницею обмежений виконанням лише цих виконуваних файлів.

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

За бажання ви можете надавати повідомлення про використання для різних папок у параметрах privacy/*_folder_usage_description.

Примітка

Ви можете перевизначити дозволи за замовчуванням, вибравши файл користувацьких дозволів, у цьому випадку всі інші дозволи ігноруються.

Змінні середовища

You can use the following environment variables to set export options outside of the editor. During the export process, these override the values that you set in the export menu.

macOS export environment variables

Export option

Environment variable

Encryption / Encryption Key

GODOT_SCRIPT_ENCRYPTION_KEY

Options / Codesign / Certificate File

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

Options / Codesign / Certificate Password

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

Options / Codesign / Provisioning Profile

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

Options / Notarization / API UUID

GODOT_MACOS_NOTARIZATION_API_UUID

Options / Notarization / API Key

GODOT_MACOS_NOTARIZATION_API_KEY

Options / Notarization / API Key ID

GODOT_MACOS_NOTARIZATION_API_KEY_ID

Options / Notarization / Apple ID Name

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

Options / Notarization / Apple ID Password

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD