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
La création d’un bundle de jeu pour iOS est disponible uniquement dans la version Mac de l’éditeur Defold.
Sous iOS, toute application que vous créez et souhaitez exécuter sur votre téléphone ou votre tablette doit être signée avec un certificat délivré par Apple et un profil d’approvisionnement. Ce manuel explique les étapes de la création d’un bundle de votre jeu pour iOS. Pendant le développement, il est souvent préférable d’exécuter votre jeu au moyen de l’application de développement, car elle vous permet de recharger à chaud le contenu et le code directement sur votre appareil.
La sécurité des applications iOS repose sur plusieurs composants. Vous pouvez accéder aux outils nécessaires en vous inscrivant au programme iOS Developer Program d’Apple. Une fois inscrit, rendez-vous dans l’espace Developer Member Center d’Apple.

La section Certificates, Identifiers & Profiles contient tous les outils dont vous avez besoin. Vous pouvez y créer, supprimer et modifier les éléments suivants :
some.prefix.*) utilisables avec plusieurs applications. Les App ID peuvent contenir des informations sur les services d’application, par exemple si l’application active l’intégration de Passbook, le Game Center, etc. Ces App ID ne peuvent pas être des identifiants génériques. Pour que les services d’application fonctionnent, l’identifiant de bundle de votre application doit correspondre à l’identifiant App ID.Pour signer vos jeux et applications dans Defold, vous avez besoin d’un certificat valide et d’un profil d’approvisionnement valide.
Certaines opérations disponibles sur la page d’accueil du Member Center peuvent également être effectuées depuis l’environnement de développement Xcode, si vous l’avez installé.

Si Xcode n’est pas installé, vous pouvez trouver l’identifiant dans iTunes. Cliquez sur l’icône des appareils et sélectionnez le vôtre.

Depuis Xcode 7, tout le monde peut installer Xcode et développer gratuitement sur un appareil. Vous n’avez pas besoin de vous inscrire à l’iOS Developer Program. Xcode vous délivrera automatiquement un certificat de développeur (valable un an) et un profil d’approvisionnement pour votre application (valable une semaine) sur votre appareil spécifique.
Single View App, convient parfaitement.Team (créée automatiquement pour vous) et attribuez un identifiant de bundle à l’application.Notez l’identifiant de bundle, car vous devez utiliser le même dans votre projet Defold.
Vérifiez que Xcode a créé un Provisioning Profile et un Signing Certificate pour l’application.

Une fois que vous avez vérifié que l’application fonctionne, retrouvez-la sur votre disque. Vous pouvez voir l’emplacement du build dans le rapport de build, dans le Report Navigator.

Repérez l’application, faites un clic droit dessus et sélectionnez Show Package Contents.

embedded.mobileprovision à un endroit de votre disque où vous pourrez le retrouver.
Ce fichier d’approvisionnement peut être utilisé avec votre identité de signature de code pour signer des applications dans Defold pendant une semaine.
Lorsque le profil d’approvisionnement expire, vous devez compiler de nouveau l’application dans Xcode et obtenir un nouveau fichier d’approvisionnement temporaire comme décrit ci-dessus.
Une fois que vous disposez de l’identité de signature de code et du profil d’approvisionnement, vous pouvez créer depuis l’éditeur un bundle d’application autonome pour votre jeu. Sélectionnez simplement Project ▸ Bundle... ▸ iOS Application... dans le menu.

Sélectionnez votre identité de signature de code, parcourez vos fichiers pour choisir votre fichier d’approvisionnement mobile et sélectionnez la variante (Debug ou Release). Vous pouvez décocher la case Sign application pour ignorer la signature et signer manuellement à une étape ultérieure. Cochez Simulator pour créer un bundle arm64_sim-ios destiné au simulateur iOS, à la place d’un bundle pour appareil.
Les bundles pour simulateur s’exécutent uniquement dans le simulateur iOS sur les Mac avec puce Apple Silicon. Ils n’utilisent ni identité de signature ni profil d’approvisionnement ; les options de signature, d’installation et de lancement sont donc désactivées lorsque Simulator est coché. Installez le bundle avec xcrun simctl comme décrit ci-dessous.
Cliquez sur Create Bundle. Vous serez alors invité à préciser l’emplacement de votre ordinateur où le bundle sera créé.

Vous définissez l’icône de l’application, le storyboard de l’écran de lancement, etc. dans la section iOS du fichier de paramètres du projet game.project.
Le fichier Info.plist iOS intégré contient le service Bonjour et la description de l’utilisation du réseau local nécessaires à la découverte automatique des cibles par l’éditeur dans les builds autres que ceux de publication. Un fichier Info.plist personnalisé remplace ce manifeste de base intégré. Si vous utilisez un manifeste personnalisé pour un build de débogage et avez besoin de la découverte de cibles, du profilage, du rechargement à chaud ou de la diffusion des journaux sur le réseau local, ajoutez ces entrées :
{{^variant_release}}
<key>NSBonjourServices</key>
<array>
<string>_defold._tcp</string>
</array>
<key>NSLocalNetworkUsageDescription</key>
<string>Discover Defold targets on the local network.</string>
{{/variant_release}}
La condition Mustache exclut les entrées de découverte des bundles de publication. La chaîne décrivant l’utilisation est affichée à l’utilisateur par iOS et peut être adaptée ou localisée. Ne supprimez la condition que si l’application de publication utilise elle-même le même service Bonjour et la même fonctionnalité de réseau local.
Lorsque vous créez un bundle de jeu, vous devez choisir le type de moteur que vous souhaitez utiliser. Vous disposez de trois options de base :
Ces différentes versions sont également appelées Build variants
Lorsque vous choisissez Project ▸ Build, vous obtenez toujours la version Debug.
Ce type d’exécutable est généralement utilisé pendant le développement d’un jeu, car il intègre plusieurs fonctionnalités de débogage utiles :
print() et des extensions natives qui utilisent dmLogInfo(), dmLogError(), etc. Découvrez comment lire ces journaux dans le manuel des journaux du jeu et du système.Les fonctionnalités de débogage sont désactivées dans cette variante. Vous devriez choisir cette option lorsque le jeu est prêt à être publié dans un magasin d’applications ou partagé avec les joueurs d’une autre manière. Il est déconseillé de publier un jeu avec les fonctionnalités de débogage activées pour plusieurs raisons :
Cet exécutable fonctionne sans interface graphique ni son. Cela signifie que vous pouvez exécuter les tests unitaires ou de bon fonctionnement du jeu sur un serveur d’intégration continue (CI), ou même l’utiliser comme serveur de jeu dans le cloud.
Vous pouvez installer et lancer le bundle généré à l’aide des cases à cocher Install on connected device et Launch installed app de l’éditeur, dans la boîte de dialogue Bundle :

L’outil en ligne de commande ios-deploy doit être installé pour que cette fonctionnalité fonctionne. Le moyen le plus simple de l’installer est d’utiliser Homebrew :
$ brew install ios-deploy
Si l’éditeur ne parvient pas à détecter l’emplacement d’installation de l’outil ios-deploy, vous devrez le préciser dans les préférences.
Vous créez un fichier de storyboard à l’aide de Xcode. Lancez Xcode et créez un nouveau projet. Sélectionnez iOS et Single View App :

Cliquez sur Next et configurez votre projet. Renseignez le champ Product Name :

Cliquez sur Create pour terminer. Votre projet est maintenant créé et nous pouvons passer à la création du storyboard :

Glissez-déposez une image pour l’importer dans le projet. Sélectionnez ensuite Assets.xcassets et déposez l’image dans Assets.xcassets :

Ouvrez LaunchScreen.storyboard et cliquez sur le bouton plus (+). Saisissez imageview dans la boîte de dialogue pour trouver le composant ImageView.

Faites glisser le composant Image View sur le storyboard :

Sélectionnez l’image que vous avez précédemment ajoutée à Assets.xcassets dans la liste déroulante Image :

Positionnez l’image et effectuez les autres ajustements nécessaires, en ajoutant éventuellement un Label ou un autre élément d’interface. Une fois terminé, définissez le schéma actif sur Any iOS Device (arm64) (ou Generic iOS Device) et sélectionnez Product ▸ Build. Defold prend en charge iOS 15.0 et les versions ultérieures sur les appareils 64 bits ; conservez donc une cible de déploiement égale ou supérieure à 15.0. Attendez la fin de la compilation.
Si vous utilisez des images dans le storyboard, elles ne seront pas automatiquement incluses dans votre fichier LaunchScreen.storyboardc. Utilisez le champ Bundle Resources de game.project pour inclure les ressources.
Par exemple, créez un dossier LaunchScreen dans le projet Defold et un dossier ios à l’intérieur (le dossier ios est nécessaire pour inclure ces fichiers uniquement dans les bundles iOS), puis placez vos fichiers dans LaunchScreen/ios/. Ajoutez ce chemin dans Bundle Resources.

La dernière étape consiste à copier le fichier compilé LaunchScreen.storyboardc dans votre projet Defold. Ouvrez le Finder à l’emplacement suivant et copiez le fichier LaunchScreen.storyboardc dans votre projet Defold :
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Intermediates.noindex/YOUR-PRODUCT-NAME.build/Debug-iphonesimulator/YOUR-PRODUCT-NAME.build/Base.lproj/LaunchScreen.storyboardc
Sergey Lerg, utilisateur du forum, a réalisé un tutoriel vidéo montrant la procédure.
Une fois le fichier de storyboard obtenu, vous pouvez le référencer dans game.project.
L’utilisation d’un catalogue de ressources est la méthode privilégiée par Apple pour gérer les icônes de votre application. C’est d’ailleurs le seul moyen de fournir l’icône utilisée sur la fiche de l’App Store. Vous créez un catalogue de ressources de la même manière qu’un storyboard, à l’aide de Xcode. Lancez Xcode et créez un nouveau projet. Sélectionnez iOS et Single View App :

Cliquez sur Next et configurez votre projet. Renseignez le champ Product Name :
![]()
Cliquez sur Create pour terminer. Votre projet est maintenant créé et nous pouvons passer à la création du catalogue de ressources :
![]()
Glissez-déposez des images dans les cases vides correspondant aux différentes tailles d’icônes prises en charge :
![]()
N’ajoutez aucune icône pour Notifications, Settings ou Spotlight.
Une fois terminé, définissez le schéma actif sur Build -> Any iOS Device (arm64) (ou Generic iOS Device) et sélectionnez Product -> Build. Attendez la fin de la compilation.
Veillez à compiler pour Any iOS Device (arm64) ou Generic iOS Device, sinon vous obtiendrez l’erreur ERROR ITMS-90704 lors de l’envoi de votre build.
![]()
La dernière étape consiste à copier le fichier compilé Assets.car dans votre projet Defold. Ouvrez le Finder à l’emplacement suivant et copiez le fichier Assets.car dans votre projet Defold :
/Library/Developer/Xcode/DerivedData/YOUR-PRODUCT-NAME-cbqnwzfisotwygbybxohrhambkjy/Build/Products/Debug-iphoneos/Icons.app/Assets.car
Une fois le fichier de catalogue de ressources obtenu, vous pouvez le référencer, ainsi que les icônes, dans game.project :
![]()
L’icône de l’App Store n’a pas besoin d’être référencée dans game.project. Elle est automatiquement extraite du fichier Assets.car lors de l’envoi à iTunes Connect.
L’éditeur crée un fichier .ipa, qui est un bundle d’application iOS. Pour installer ce fichier sur votre appareil, vous pouvez utiliser l’un des outils suivants :
Devices and Simulatorsios-deployApple Configurator 2, disponible dans l’App Store de macOSVous pouvez également utiliser l’outil en ligne de commande xcrun simctl pour travailler avec les simulateurs iOS disponibles via Xcode :
# show a list of available devices
xcrun simctl list
# boot an iPhone X simulator
xcrun simctl boot "iPhone X"
# install your.app to a booted simulator
xcrun simctl install booted your.app
# launch the simulator
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
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.
Lorsque vous soumettez votre jeu à l’App Store, il vous sera demandé de fournir des informations de conformité à l’exportation concernant l’utilisation du chiffrement dans votre jeu. Apple explique pourquoi ces informations sont requises :
« Lorsque vous soumettez votre application à TestFlight ou à l’App Store, vous l’envoyez sur un serveur situé aux États-Unis. Si vous distribuez votre application en dehors des États-Unis ou du Canada, elle est soumise aux lois américaines sur l’exportation, quel que soit le pays où votre entité juridique est établie. Si votre application utilise du chiffrement, y accède, en contient, en implémente ou en intègre, cela est considéré comme une exportation de logiciel de chiffrement. Votre application est donc soumise aux exigences américaines de conformité à l’exportation, ainsi qu’aux exigences de conformité à l’importation des pays où vous la distribuez. »
Le moteur de jeu Defold utilise le chiffrement aux fins suivantes :
Ces usages du chiffrement dans le moteur Defold sont exemptés des exigences documentaires de conformité à l’exportation en vertu des lois des États-Unis et de l’Union européenne. La plupart des projets Defold resteront exemptés, mais l’ajout d’autres méthodes cryptographiques peut modifier ce statut. Il vous incombe de vérifier que votre projet satisfait aux exigences de ces lois et aux règles de l’App Store. Consultez la présentation de la conformité à l’exportation d’Apple pour plus d’informations.
Si vous estimez que votre projet bénéficie d’une exemption, définissez la clé ITSAppUsesNonExemptEncryption sur False dans le fichier Info.plist du projet. Consultez les manifestes d’application pour plus de détails.
R : Assurez-vous d’utiliser le même identifiant de bundle dans votre projet Defold que celui que vous avez utilisé dans le projet Xcode lors de la génération du profil de provisionnement mobile.
R : D’après Inspection des droits d’une application compilée :
codesign -d --ent :- /path/to/the.app
R : D’après Inspection des droits d’un profil :
security cms -D -i /path/to/iOSTeamProfile.mobileprovision