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 identifiershould be set in theApplicationsection 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 RuntimeandTimestampand disable theDebugentitlement.- Provide valid Apple ID credentials and certificate identity.
Notarizationis enabled, Godot will automatically upload the exported project for notarization.xcrun notarytool historycommand to check notarization status and use thexcrun 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 Signingenabled and leave theIdentityoption 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
NoteHardened RuntimeandTimestamp.Hardened RuntimeandTimestampoptions 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.
