This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Die Entwicklung von Defold-Anwendungen für die macOS-Plattform ist unkompliziert und erfordert nur wenige besondere Überlegungen.
Die macOS-spezifische Konfiguration der Anwendung erfolgt im Abschnitt macOS der Einstellungsdatei game.project.
Das Anwendungssymbol für ein macOS-Spiel muss im Format .icns vorliegen. Du kannst eine .icns-Datei ganz einfach aus mehreren .png-Dateien erstellen, die als .iconset zusammengefasst sind. Befolge die offizielle Anleitung zum Erstellen einer .icns-Datei. Hier ist eine kurze Zusammenfassung der erforderlichen Schritte:
game.iconsetKopiere die Symboldateien in den erstellten Ordner:
icon_16x16.pngicon_16x16@2x.pngicon_32x32.pngicon_32x32@2x.pngicon_128x128.pngicon_128x128@2x.pngicon_256x256.pngicon_256x256@2x.pngicon_512x512.pngicon_512x512@2x.png.iconset-Ordner in eine .icns-Datei. Verwende dazu das Kommandozeilenwerkzeug iconutil:iconutil -c icns -o game.icns game.iconset
Du kannst deine Anwendung im Mac App Store, über einen Store oder ein Portal eines Drittanbieters wie Steam oder itch.io oder selbst über eine Website veröffentlichen. Vor der Veröffentlichung musst du deine Anwendung für die Einreichung vorbereiten. Die folgenden Schritte sind unabhängig davon erforderlich, wie du die Anwendung verteilen möchtest:
$ chmod +x Game.app/Contents/MacOS/Game
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
com.apple.security.cs.allow-jit - Gibt an, ob die Anwendung mit dem Flag MAP_JIT beschreibbaren und ausführbaren Speicher erstellen darfcom.apple.security.cs.allow-unsigned-executable-memory - Gibt an, ob die Anwendung beschreibbaren und ausführbaren Speicher ohne die Einschränkungen erstellen darf, die durch die Verwendung des Flags MAP_JIT auferlegt werdencom.apple.security.cs.allow-dyld-environment-variables - Gibt an, ob die Anwendung von Umgebungsvariablen des dynamischen Linkers beeinflusst werden darf, mit denen du Code in den Prozess deiner Anwendung einschleusen kannstEinige Anwendungen benötigen möglicherweise zusätzliche Berechtigungen. Die Steamworks-Erweiterung benötigt diese zusätzliche Berechtigung:
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
com.apple.security.cs.disable-library-validation - Gibt an, ob die Anwendung beliebige Plug-ins oder Frameworks laden darf, ohne dass eine Codesignierung erforderlich ist.Alle Berechtigungen, die einer Anwendung erteilt werden können, sind in der offiziellen Entwicklerdokumentation von Apple aufgeführt.
codesign:$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
Apple verlangt, dass sämtliche Software, die außerhalb des Mac App Store verteilt wird, von Apple notarisiert wird, damit sie unter macOS Catalina standardmäßig ausgeführt werden kann. In der offiziellen Dokumentation erfährst du, wie du die Notarisierung in eine skriptgesteuerte Build-Umgebung außerhalb von Xcode integrierst. Hier ist eine kurze Zusammenfassung der erforderlichen Schritte:
Befolge die obigen Schritte zum Hinzufügen von Berechtigungen und zum Signieren der Anwendung.
Verpacke dein Spiel als ZIP-Datei und lade es mit altool zur Notarisierung hoch.
$ xcrun altool --notarize-app
--primary-bundle-id "com.acme.foobar"
--username "AC_USERNAME"
--password "@keychain:AC_PASSWORD"
--asc-provider <ProviderShortname>
--file Game.zip
altool[16765:378423] No errors uploading 'Game.zip'.
RequestUUID = 2EFE2717-52EF-43A5-96DC-0797E4CA1041
altool --notarize-app zurückgegeben wurde:$ xcrun altool --notarization-info 2EFE2717-52EF-43A5-96DC-0797E4CA1041
-u "AC_USERNAME"
success lautet, und füge dem Spiel das Notarisierungsticket hinzu:$ xcrun stapler staple "Game.app"
Der Ablauf zur Veröffentlichung im Mac App Store ist in der Entwicklerdokumentation von Apple gut dokumentiert. Stelle sicher, dass du vor der Einreichung wie oben beschrieben Berechtigungen hinzufügst und die Anwendung mit codesign signierst.
Hinweis: Bei der Veröffentlichung im Mac App Store muss das Spiel nicht notarisiert werden.
Das Datenschutzmanifest ist eine Eigenschaftsliste, die die von deiner App oder einem SDK eines Drittanbieters erfassten Datenarten sowie die von deiner App oder dem SDK verwendeten APIs auflistet, deren Nutzung eine Begründung erfordert. Für jede erfasste Datenart und jede verwendete Kategorie solcher APIs muss deine App oder das SDK eines Drittanbieters die Gründe in der im Bundle enthaltenen Datenschutzmanifestdatei festhalten.
Defold stellt über das Feld Privacy Manifest in der Datei game.project ein standardmäßiges Datenschutzmanifest bereit. Beim Erstellen eines Anwendungsbundles wird das Datenschutzmanifest mit allen Datenschutzmanifesten in den Projektabhängigkeiten zusammengeführt und in das Anwendungsbundle aufgenommen.
Weitere Informationen zu Datenschutzmanifesten findest du in der offiziellen Dokumentation von Apple.