Exporting for macOS

See also Compiling for macOS. .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 DMG disk image (only supported when exporting from a computer running macOS).

Requirements

  • To enable code signing with Apple Developer ID and notarization, you must export from a computer running macOS with Xcode command line tools installed.
  • Ad-hoc code signing is supported on all platforms, without additional tools.
  • Editor > Manage Export Templates.
  • Bundle identifier should be set in the Application section of the export options. Warning Running Godot apps on macOS page for more information.

    Code signing and notarization

    Running Godot apps on macOS for workarounds. must have a valid Apple Developer ID Certificate.

    If you have an Apple Developer ID Certificate

  • Export your project from a computer running macOS with Xcode command line tools installed.
  • Code Signing, Notarization, Hardened Runtime and Timestamp and disable the Debug entitlement.
  • Provide valid Apple ID credentials and certificate identity. Notarization is enabled, Godot will automatically upload the exported project for notarization. xcrun notarytool history command to check notarization status and use the xcrun notarytool log {ID} command to download the notarization log. Resolving common notarization issues for more info. staple the ticket to the exported project.

    If you do not have an Apple Developer ID Certificate

    Code Signing enabled and leave the Identity option empty (when exporting from a computer running macOS, on other platforms this option is hidden). 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.

    Signing Options

    Note Hardened Runtime and Timestamp. Hardened Runtime and Timestamp options are incompatible with ad-hoc signing and will be ignored.

Identity option empty to use ad-hoc signature. 1,2,3) This option is visible only when exporting from a computer running macOS.

Notarization Options

Notarizing macOS Software Before Distribution for more info. Note Notarization is supported when exporting from a computer running macOS, these options are hidden on other platforms.

Entitlements

Hardened Runtime Entitlements

Hardened Runtime for more info. 1,2,3) Allow JIT Code Execution, Allow Unsigned Executable Memory and Allow DYLD Environment Variables entitlements are always enabled for the Godot Mono exports, and are not visible in the export options. 1,2,3,4) These features aren’t supported by Godot out of the box, enable them only if you are using add-ons which require them.

Debugging entitlement.

App Sandbox Entitlement

OS.execute and OS.create_process) outside the .app bundle. See App Sandbox for more info. Note To distribute an app through the App Store, you must enable the App Sandbox. 1,2,3,4,5) You can optionally provide usage messages for various folders in the privacy/*_folder_usage_description options. You can override default entitlements by selecting custom entitlements file, in this case all other entitlement are ignored.