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
Nous décrivons ici comment déboguer un build avec Xcode, l’IDE privilégié par Apple pour le développement sur macOS et iOS.
--with-symbols (plus d’informations) :$ cd myproject
$ wget http://d.defold.com/archive/<sha1>/bob/bob.jar
$ java -jar bob.jar --platform armv7-darwin build --with-symbols --variant debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
Xcode, iTunes ou ios-deploy$ ios-deploy -b <AppName>.ipa
Récupérez le dossier .dSYM (c’est-à-dire les symboles de débogage)
Si l’application n’utilise pas d’extensions natives, vous pouvez télécharger le fichier .dSYM sur d.defold.com
Si vous utilisez une extension native, le dossier .dSYM est généré lorsque vous créez un build avec bob.jar. Seul le build est nécessaire (sans archivage ni création de bundle) :
$ cd myproject
$ unzip .internal/cache/arm64-ios/build.zip
$ mv dmengine.dSYM <AppName>.dSYM
$ mv <AppName>.dSYM/Contents/Resources/DWARF/dmengine <AppName>.dSYM/Contents/Resources/DWARF/<AppName>
Pour déboguer correctement, nous devons disposer d’un projet et configurer les correspondances avec le code source. Nous utilisons ce projet uniquement pour le débogage, sans y effectuer de build.
Créez un projet Xcode et choisissez le modèle Game

Choisissez un nom (par exemple debug) et les paramètres par défaut
Choisissez un dossier dans lequel enregistrer le projet
Ajoutez votre code à l’application

Vérifiez que la case « Copy items if needed » est décochée.

Voici le résultat final

Désactivez l’étape Build


Définissez la version Deployment target de sorte qu’elle soit désormais supérieure à la version d’iOS de votre appareil

Sélectionnez l’appareil cible

Plusieurs possibilités s’offrent à vous pour déboguer une application
Choisissez Debug -> Attach to process..., puis sélectionnez l’application
Ou choisissez Attach to process by PID or Process name

Démarrez l’application sur l’appareil
Dans Edit Scheme, ajoutez le dossier
Pour utiliser lldb, l’exécution doit être suspendue
.dSYM à lldb(lldb) add-dsym <PathTo.dSYM>

lldb a lu les symboles correctement(lldb) image list <AppName>
(lldb) settings set target.source-map /Users/builder/ci/builds/engine-ios-64-master/build /Users/mathiaswesterdahl/work/defold
(lldb) settings append target.source-map /private/var/folders/m5/bcw7ykhd6vq9lwjzq1mkp8j00000gn/T/job4836347589046353012/upload/videoplayer/src /Users/mathiaswesterdahl/work/projects/extension-videoplayer-native/videoplayer/src
job1298751322870374150, avec un nombre aléatoire à chaque fois.$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
Vous pouvez vérifier de quel fichier source provient un symbole à l’aide de la commande suivante
(lldb) image lookup -va <SymbolName>
Ouvrez un fichier dans la vue du projet et définissez un point d’arrêt

Pour que le débogueur accepte le dossier .dSYM, son UUID doit correspondre à celui de l’exécutable en cours de débogage. Vous pouvez vérifier l’UUID ainsi :
$ dwarfdump -u <PathToBinary>