Godot Tutorial: Exporting for macOS

Aeris
The BKPT
Published in
4 min readOct 4, 2023
- Notorization: Notorization with an ad-hoc signature is not supported

- editor/editor_export.h:251 - Notarization: Notarization failed.

Do the above errors look familiar? Are you trying to sign and notarize your Godot build? Then you’re in the right place. This tutorials walks you through the steps to export, sign, and notarize your project for macOS.

This tutorial assumes you are using macOS. And I’m personally using Godot 3.5.

Generate your code signing cert

  1. Sign up for an Apple Developer account. Pay $99 and wait a day for your account to be approved.
  2. Install XCode through the App Store in MacOS. The installation takes quite some time.
  3. Follow Apple’s steps to create a new code signing identity. I’ve included a copy below for convenience.
  • Open Xcode.
  • Choose Xcode > Settings.
  • In the toolbar, click Accounts.
  • Select your Apple ID from the list of accounts.
  • Select the team to create the code signing identity for from the list of your Apple ID’s teams.
  • Click Manage Certificates.
  • Click the Add button (+) in the bottom corner of the signing certificates panel, shown below.
  • Choose Developer ID Application.

Export the Game from Godot

  1. Download the Godot export templates. Use the Godot menu: Editor > Manage Export Templates.
  2. A valid and unique Bundle identifier should be set in the Application section of the export options.
  3. Fill out the fields underlined in orange in the export settings. See screenshot below.
  4. Make sure to set the Export Path to a directory that is NOT the project directory. You need to make an export directory OUTSIDE of the project directory. Just do it.
  1. Run security find-identity -v -p codesigning to retrieve a list of your valid certificates. The identity you are looking for is a long hex string like: E1F1A15711B192C192761940Z1E18EFE1ABD1146.
  2. In the Notarize section, paste this into theIdentity field. See screenshot below, on the left.
  3. Generate an Apple Account app specific password. Instructions from Apple here. Copied below for convenience.
  • Sign in to appleid.apple.com.
  • In the Sign-In and Security section, select App-Specific Passwords.
  • Select Generate an app-specific password or select the Add button (+), then follow the steps on your screen.
  1. Copy the app specific password and paste it into Apple ID Password in the export template (see the screenshot on the left below).
  2. Copy your team ID from your Apple account page. Paste into Apple Team ID . The team ID is a random, 11 character alphanumeric string.
  3. Configure the rest of your code signing and notorization settings to match the settings in the screenshots.
  1. Choose Export All... and Release
  2. The build and notarization process takes quite some time. Maybe ~15 minutes, depending on your internet speed.
  3. When the process is done, you should see a success message like this.

And that’s it! Now when players open your game, they will only be prompted with “Are you sure you want to open it” (right), rather than that says “Game can’t be opened because Apple cannot check it for malicious software” (left).

Unnotarized left, right is notarized.

Troubleshooting

If you are still seeing the notarization error, here are some steps you can try.

  1. I was seeing the opaque notarization failure again after a period of time because I need to accept the new terms of services at https://developer.apple.com/. Sign in to your developer account and accept the new terms and conditions.

Related Links

--

--

Aeris
The BKPT

Will probably use this blog to write about video games.