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
Développer des applications Defold pour la plateforme macOS est un processus simple, avec très peu de points à prendre en compte.
La configuration de l’application propre à macOS s’effectue dans la section macOS du fichier de paramètres game.project.
L’icône de l’application utilisée pour un jeu macOS doit être au format .icns. Vous pouvez facilement créer un fichier .icns à partir d’un ensemble de fichiers .png regroupés dans un .iconset. Suivez les instructions officielles pour créer un fichier .icns. Voici un bref résumé des étapes à suivre :
game.iconsetCopiez les fichiers des icônes dans le dossier créé :
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 en fichier .icns à l’aide de l’outil en ligne de commande iconutil :iconutil -c icns -o game.icns game.iconset
Vous pouvez publier votre application sur le Mac App Store, sur une boutique ou un portail tiers comme Steam ou itch.io, ou par vos propres moyens sur un site web. Avant de publier votre application, vous devez la préparer pour sa soumission. Les étapes suivantes sont obligatoires, quel que soit le mode de distribution envisagé pour l’application :
$ 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 - Indique si l’application peut créer de la mémoire accessible en écriture et exécutable à l’aide de l’indicateur MAP_JITcom.apple.security.cs.allow-unsigned-executable-memory - Indique si l’application peut créer de la mémoire accessible en écriture et exécutable sans les restrictions imposées par l’utilisation de l’indicateur MAP_JITcom.apple.security.cs.allow-dyld-environment-variables - Indique si l’application peut être affectée par les variables d’environnement de l’éditeur de liens dynamique, que vous pouvez utiliser pour injecter du code dans le processus de votre applicationCertaines applications peuvent également nécessiter des autorisations supplémentaires. L’extension Steamworks a besoin de cette autorisation supplémentaire :
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
com.apple.security.cs.disable-library-validation - Indique si l’application peut charger des modules complémentaires ou des frameworks quelconques, sans exiger de signature de code.Toutes les autorisations pouvant être accordées à une application sont répertoriées dans la documentation officielle Apple destinée aux développeurs.
codesign :$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
Apple exige que tous les logiciels distribués en dehors du Mac App Store soient notariés par Apple pour pouvoir être exécutés par défaut sous macOS Catalina. Consultez la documentation officielle pour savoir comment ajouter la notarisation à un environnement de build piloté par des scripts en dehors de Xcode. Voici un bref résumé des étapes à suivre :
Suivez les étapes ci-dessus pour ajouter les autorisations et signer l’application.
Compressez votre jeu au format ZIP et envoyez-le pour notarisation à l’aide de altool.
$ 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 :$ xcrun altool --notarization-info 2EFE2717-52EF-43A5-96DC-0797E4CA1041
-u "AC_USERNAME"
success, puis attachez le ticket de notarisation au jeu :$ xcrun stapler staple "Game.app"
Le processus de publication sur le Mac App Store est bien décrit dans la documentation Apple destinée aux développeurs. Veillez à ajouter les autorisations et à signer l’application avec codesign comme décrit ci-dessus avant de la soumettre.
Remarque : le jeu n’a pas besoin d’être notarié pour être publié sur le Mac App Store.
Le manifeste de confidentialité est une liste de propriétés qui consigne les types de données collectées par votre application ou un SDK tiers, ainsi que les API dont l’utilisation doit être justifiée et auxquelles votre application ou un SDK tiers fait appel. Pour chaque type de données collectées et chaque catégorie d’API utilisée nécessitant une justification, votre application ou le SDK tiers doit consigner les raisons dans le fichier de manifeste de confidentialité inclus dans son bundle.
Defold fournit un manifeste de confidentialité par défaut via le champ Privacy Manifest du fichier game.project. Lors de la création d’un bundle d’application, le manifeste de confidentialité est fusionné avec les éventuels manifestes de confidentialité des dépendances du projet, puis inclus dans le bundle d’application.
Pour en savoir plus sur les manifestes de confidentialité, consultez la documentation officielle d’Apple.