Up to date

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

Exportieren für macOS

Siehe auch

Diese Seite beschreibt, wie man ein Godot-Projekt nach macOS exportiert. Wenn Sie stattdessen Editor- oder Exportvorlagen-Binärdateien aus dem Quellcode kompilieren möchten, lesen Sie Kompilieren für MacOS.

macOS apps exported with the official export templates are exported as a single "Universal 2" binary .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). Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple silicon, i.e. M1) architectures.

Anforderungen

  • Laden Sie die Godot-Exportvorlagen herunter. Verwenden Sie das Godot-Menü: Editor> Exportvorlagen verwalten.

  • Ein gültiger und eindeutiger Bundle-Identifikator sollte im Abschnitt Anwendung der Exportoptionen angegeben werden.

Warnung

Projekte, die ohne Code-Signierung und Notarisierung exportiert werden, werden von Gatekeeper blockiert, wenn sie aus unbekannten Quellen heruntergeladen werden. Weitere Informationen finden Sie auf der Seite Ausführen von Godot-Anwendungen unter macOS.

Unterzeichnung und Notarisierung des Codes

Standardmäßig werden unter macOS nur Anwendungen ausgeführt, die signiert und notarialisiert sind. Wenn Sie eine andere Signierkonfiguration verwenden, finden Sie unter Ausführen von Godot-Anwendungen unter macOS Workarounds.

Um eine App zu notarisieren, müssen Sie ein gültiges Apple Developer ID-Zertifikat haben.

Wenn Sie ein Apple Developer ID-Zertifikat haben und aus macOS exportieren

Installieren Sie die Xcode-Kommandozeilentools und öffnen Sie Xcode mindestens einmal oder führen Sie den Befehl sudo xcodebuild -license accept aus, um die Lizenzvereinbarung zu akzeptieren.

Signieren der exportierten App

  • Wählen Sie Xcode Codesign in der Option Code Signing > Codesign.

  • Stellen Sie eine gültige Apple ID Zertifikatsidentität (Zertifikat "Common Name") im Abschnitt Code Signing > Identity ein.

Notarisieren der exportierten App

  • Wählen Sie Xcode altool in der Option Notarization > Notarization.

  • Deaktivieren Sie die Berechtigung Debugging.

  • Setzen Sie ein gültiges Apple ID Login / App-spezifisches Passwort oder App Store Connect API UUID / Key im Abschnitt Notarization.

Sie können den Befehl xcrun notarytool history verwenden, um den Notarisierungsstatus zu überprüfen und den Befehl xcrun notarytool log {ID} verwenden, um das Notarisierungsprotokoll herunterzuladen.

Wenn Sie auf Probleme bei der Notarisierung stoßen, finden Sie weitere Informationen unter Lösung allgemeiner Notarisierungsprobleme.

Nachdem die Notarisierung abgeschlossen ist, heften Sie das Ticket an das exportierte Projekt.

Wenn Sie ein Apple Developer ID-Zertifikat haben und von Linux oder Windows exportieren

Installieren Sie PyOxidizer rcodesign, und konfigurieren Sie den Pfad zu rcodesign in den Editor-Einstellungen > Export > macOS > rcodesign.

Signieren der exportierten App

  • Wählen Sie PyOxidizer rcodesign in der Option Code Signing > Codesign.

  • Setzen Sie eine gültige Apple ID PKCS #12 Zertifikatsdatei und ein Passwort im Abschnitt Code Signing.

Notarisieren der exportierten App

  • Wählen Sie PyOxidizer rcodesign in der Option Notarization > Notarization.

  • Deaktivieren Sie die Berechtigung Debugging.

  • Setzen Sie gültige App Store Connect-API UUID / Schlüssel im Abschnitt Notarisierung.

Sie können den Befehl rcodesign notary-log verwenden, um den Status der Notarisierung zu überprüfen.

Nachdem die Notarisierung abgeschlossen ist, verwenden Sie den Befehl rcodesign staple, um das Ticket an das exportierte Projekt zu heften.

Wenn Sie kein Apple Developer ID-Zertifikat besitzen

  • Wählen Sie Built-in (nur ad-hoc) in der Option Code Signing > Codesign.

  • Wählen Sie Deaktiviert in der Option Notarization > Notarization.

In diesem Fall wird Godot eine Ad-hoc-Signatur verwenden, die das Ausführen einer exportierten Anwendung für den Endbenutzer einfacher macht. Weitere Informationen finden Sie auf der Seite Ausführen von Godot-Anwendungen auf macOS.

Signieroptionen

Option

Beschreibung

Codesign

Tool für die Codesignierung.

Identität

Der "Full Name" oder "Common Name" der signierenden Identität, gespeichert in der macOS-Keychain. 1

Zertifikatsdatei

Die PKCS #12-Zertifikatsdatei. 2

Zertifikatspasswort

Passwort für die Zertifikatsdatei. 2

Benutzerdefinierte Optionen

Array von Kommandozeilenargumenten, die an das Code Signing Tool übergeben werden.

1

Diese Option ist nur beim Signieren mit Xcode Codesign sichtbar.

2(1,2)

Diese Optionen sind nur beim Signieren mit PyOxidizer rcodesign sichtbar.

Notarisierungsoptionen

Option

Beschreibung

Notarisierung

Tool für die Notarisierung.

Apple-ID-Name

Apple ID Account-Name (E-Mail-Adresse). 3

Apple-ID-Password

Apple ID App-spezifisches Passwort. Siehe Verwendung von app-spezifischen Passwörtern, um die Zwei-Faktor-Authentifizierung zu aktivieren und ein App-Passwort zu erstellen. 3

Apple-Team-ID

Team-ID ("Organisationseinheit"), wenn Ihre Apple ID zu mehreren Teams gehört (optional). 3

API UUID

Apple App Store Connect API-Aussteller UUID.

API-Schlüssel

Apple App Store Connect API-Schlüssel.

Bemerkung

Sie sollten entweder Apple ID Name/Passwort oder App Store Connect API UUID/Key einstellen.

3(1,2,3)

Diese Optionen sind nur beim Notarisieren mit Xcode altool sichtbar.

Weitere Informationen finden Sie unter Notarisierung von macOS-Software vor der Verteilung.

Berechtigungen

Gehärtete Laufzeitberechtigungen

Die gehärteten Laufzeitberechtigungen verwalten die Sicherheitsoptionen und die Richtlinien für den Ressourcenzugriff. Siehe Gehärtete Laufzeit für weitere Informationen.

Berechtigung

Beschreibung

JIT-Code-Ausführung zulassen 4

Ermöglicht die Erstellung von beschreibbarem und ausführbarem Speicher für JIT-Code. Wenn Sie Add-ons mit dynamischem oder selbstmodifizierendem nativen Code verwenden, aktivieren Sie diese gemäß der Dokumentation des Add-ons.

Unsigned Executable Memory zulassen 4

Ermöglicht die Erstellung von beschreibbarem und ausführbarem Speicher ohne JIT-Einschränkungen. Wenn Sie Add-ons mit dynamischem oder selbstmodifizierendem nativen Code verwenden, aktivieren Sie diese gemäß der Dokumentation des Add-ons.

DYLD-Umgebungsvariablen zulassen 4

Ermöglicht der Anwendung die Verwendung von dynamischen Linker-Umgebungsvariablen zum Einfügen von Code. Wenn Sie Add-ons mit dynamischem oder selbstmodifizierendem nativen Code verwenden, aktivieren Sie diese gemäß der Dokumentation des Add-ons.

Bibliotheksvalidierung deaktivieren

Erlaubt der Anwendung, beliebige Bibliotheken und Frameworks zu laden. Aktivieren Sie dies, wenn Sie GDExtension-Add-ons oder Ad-hoc-Signierung verwenden oder vom Benutzer bereitgestellte externe Add-ons unterstützen möchten.

Audioeingang

Aktivieren Sie diese Option, wenn Sie das Mikrofon oder andere Audio-Eingangsquellen verwenden müssen. Wenn sie aktiviert ist, sollten Sie in der Option privacy/microphone_usage_description auch eine Nutzungsmeldung angeben.

Kamera

Aktivieren Sie die Option, wenn Sie die Kamera verwenden müssen. Wenn sie aktiviert ist, sollten Sie auch eine Nutzungsmeldung in der Option privacy/camera_usage_description angeben.

Ort

Aktivieren Sie diese Option, wenn Sie Standortinformationen aus den Standortdiensten verwenden müssen. Wenn sie aktiviert ist, sollten Sie in der Option privacy/location_usage_description auch eine Nutzungsmeldung angeben.

Adressbuch

5 Aktivieren Sie diese Option, um den Zugriff auf die Kontakte im Adressbuch des Benutzers zuzulassen. Wenn Sie diese Option aktivieren, sollten Sie auch eine Nutzungsmeldung in der Option privacy/address_book_usage_description angeben.

Kalender

5 Aktivieren Sie diese Option, um den Zugriff auf den Kalender des Benutzers zu ermöglichen. Wenn Sie diese Option aktivieren, sollten Sie in der Option privacy/calendar_usage_description auch eine Nutzungsmeldung angeben.

Fotobibliothek

5 Aktivieren Sie diese Option, um den Zugriff auf die Fotobibliothek des Benutzers zu erlauben. Wenn Sie diese Option aktivieren, sollten Sie auch eine Nachricht über die Verwendung in der Option privacy/photos_library_usage_description angeben.

Apple-Events

5 Aktivieren Sie diese Option, damit die Anwendung Apple-Events an andere Anwendungen senden kann.

Debugging

6 Sie können diese Berechtigung vorübergehend aktivieren, um den nativen Debugger (GDB, LLDB) mit der exportierten Anwendung zu verwenden. Diese Berechtigung sollte für den Produktionsexport deaktiviert werden.

4(1,2,3)

Die Berechtigungen JIT-Code-Ausführung zulassen, Unsigned Executable Memory zulassen und DYLD-Umgebungsvariablen zulassen sind für die Godot-Mono-Exporte immer aktiviert und in den Exportoptionen nicht sichtbar.

5(1,2,3,4)

Diese Features werden von Godot nicht von Haus aus unterstützt. Aktivieren Sie sie nur, wenn Sie Add-ons verwenden, die sie benötigen.

6

Um eine Anwendung zu notarisieren, müssen Sie die Berechtigung Debugging deaktivieren.

App Sandbox-Berechtigung

Die App-Sandbox schränkt den Zugriff auf Benutzerdaten, Netzwerke und Geräte ein. Apps in der Sandbox können nicht auf den größten Teil des Dateisystems zugreifen, können keine benutzerdefinierten Dateidialoge verwenden und führen Binärdateien (mit OS.execute und OS.create_process) außerhalb des . app-Bundles aus. Siehe App Sandbox für weitere Informationen.

Bemerkung

Um eine App über den App Store zu vertreiben, müssen Sie die App Sandbox aktivieren.

Berechtigung

Beschreibung

Aktiviert

Aktiviert die App-Sandbox.

Netzwerk-Server

Aktivieren Sie diese Option, damit die Anwendung auf eingehende Netzwerkverbindungen warten kann.

Netzwerk-Client

Aktivieren Sie diese Option, damit die Anwendung ausgehende Netzwerkverbindungen herstellen kann.

Gerät USB

Aktivieren Sie diese Option, damit die App mit USB-Geräten interagieren kann. Diese Berechtigung ist für die Verwendung von kabelgebundenen Controllern erforderlich.

Gerät Bluetooth

Aktivieren Sie diese Option, damit die App mit Bluetooth-Geräten interagieren kann. Diese Berechtigung ist für die Verwendung von drahtlosen Controllern erforderlich.

Dateien Downloads 7

Ermöglicht den Lese- oder Schreibzugriff auf den Ordner "Downloads" des Benutzers.

Dateien Bilder 7

Ermöglicht den Lese- oder Schreibzugriff auf den Ordner "Bilder" des Benutzers.

Dateien Musik 7

Ermöglicht den Lese- oder Schreibzugriff auf den Ordner "Musik" des Benutzers.

Dateien Filme 7

Ermöglicht den Lese- oder Schreibzugriff auf den Ordner "Filme" des Benutzers.

Dateien Benutzerdefiniert 7

Erlaubt Lese- oder Schreibzugriff auf beliebige Ordner. Um Zugriff zu erhalten, muss der Benutzer einen Ordner aus dem nativen Dateidialog auswählen.

Helfer Ausführbare Datei

Liste der ausführbaren Hilfsprogramme, die in das App-Bundle eingebettet werden. Sandbox-Apps können nur diese ausführbaren Dateien ausführen.

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

Sie können in den Optionen privacy/*_folder_usage_description optional Nutzungsmeldungen für verschiedene Ordner angeben.

Bemerkung

Sie können die Standardberechtigungen außer Kraft setzen, indem Sie eine benutzerdefinierte Berechtigungsdatei auswählen; in diesem Fall werden alle anderen Berechtigungen ignoriert.

Umgebungsvariablen

Sie können die folgenden Umgebungsvariablen verwenden, um Exportoptionen außerhalb des Editors festzulegen. Während des Exportvorgangs überschreiben diese die Werte, die Sie im Exportmenü festgelegt haben.

macOS Export-Umgebungsvariablen

Export-Option

Umgebungsvariable

Verschlüsselung / Verschlüsselungsschlüssel

GODOT_SCRIPT_ENCRYPTION_KEY

Optionen / Codesign / Zertifikatsdatei

GODOT_MACOS_CODESIGN_CERTIFICATE_FILE

Optionen / Codesign / Zertifikatspasswort

GODOT_MACOS_CODESIGN_CERTIFICATE_PASSWORD

Optionen / Codesign / Bereitstellungsprofil

GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE

Optionen / Notarisierung / API UUID

GODOT_MACOS_NOTARIZATION_API_UUID

Optionen / Notarisierung / API-Schlüssel

GODOT_MACOS_NOTARIZATION_API_KEY

Optionen / Notarisierung / API-Schlüssel-ID

GODOT_MACOS_NOTARIZATION_API_KEY_ID

Optionen / Notarisierung / Apple ID-Name

GODOT_MACOS_NOTARIZATION_APPLE_ID_NAME

Optionen / Notarisierung / Apple ID-Passwort

GODOT_MACOS_NOTARIZATION_APPLE_ID_PASSWORD