Accéder aux journaux et aux rapports de plantage d'iOS et de tvOS
Les applications iOS développées avec l'Unreal Engine génèrent des journaux de plantage que les développeurs peuvent utiliser pour déboguer leurs projets et résoudre les problèmes de code. Toutefois, pour des raisons de sécurité, les symboles de débogage ne sont pas inclus dans les journaux de plantage eux-mêmes. Vous verrez des clés et des chiffres, mais pour obtenir les noms des fonctions ou les informations sur les variables dans un format lisible par l'utilisateur, vous devez associer vos journaux à une base de données des symboles de votre projet.
Il existe plusieurs processus pour resymboliquer vos journaux et les interpréter, selon la manière dont vous avez déployé vos builds de débogage sur les appareils. TestFlight est l'application d'Apple permettant de distribuer des builds de test à un grand nombre d'appareils. Elle fournit également aux développeurs les journaux générés par ces builds. Il est également possible d'obtenir les journaux directement via le débogage USB.
Il faut un Mac et Xcode pour lire les journaux des projets iOS. Les autres systèmes d'exploitation et environnements de développement ne sont pas compatibles avec les flux de travail décrits sur cette page.
1. Accéder aux journaux directement sur l'appareil
Si vous déboguez directement via USB ou Ethernet, procédez comme suit pour afficher un rapport de plantage symboliqué :
Dans le menu principal de Xcode, sélectionnez Fenêtre > Appareils et simulateurs.
Cliquer sur l'iPhone dont vous souhaitez obtenir les données de plantage, puis cliquez sur Voir les journaux de l'appareil.
Appuyez sur Ctrl puis cliquez sur le journal que vous souhaitez lire. Cliquez ensuite sur Resymboliquer et exporter le journal.
Un journal compréhensible sera ainsi généré, avec les symboles de débogage.
2. Accéder aux journaux depuis TestFlight
Lorsqu'une application distribuée via TestFlight plante, elle génère un fichier XCrashPoint contenant les informations relatives au plantage. Pour lire ces fichiers, il vous faut un fichier .dSYM contenant les symboles de débogage de votre projet. Vous devez ensuite extraire le rapport de plantage et le resymboliquer.
Pour obtenir des informations spécifiques sur le déploiement d'applications via TestFlight et l'accès aux journaux, consultez la documentation d'Apple sur TestFlight. Cette section explique comment les resymboliquer une fois que vous les avez obtenus.
Générer un fichier .dSYM pendant l'empaquetage
Pour générer un fichier .dSYM lors de l'empaquetage du projet, procédez comme suit :
Ouvrez l'Unreal Editor.
Ouvrez les paramètres du projet, puis atteignez Plateformes > iOS > Build.
Activez la fonction Générer un fichier dSYM pour le débogage et le profilage du code.
Empaquetez votre projet.
Le fichier .dSYM de votre projet apparaîtra dans le dossier du projet, sous /Binaries/iOS.
Les fichiers .dSYM disposent d'un horodatage indiquant quand ils ont été empaquetés. Prenez note de cette information pour pouvoir associer le fichier .dSYM au build approprié.
Générer un fichier .dSYSM à partir d'une ligne de commande
Pour générer un fichier .dSYM avec UAT, exécutez le script RunUAT en ligne de commande en utilisant la commande GenerateDYSM. Spécifiez les paramètres suivants :
| Paramètre | Facultatif | Valeurs valides | Description |
|---|---|---|---|
-Platform=[Plateforme cible] | Oui | IOS, TVOS, Mac | Spécifier la plateforme cible. La plateforme actuelle est utilisée par défaut si aucune n'est spécifiée. |
-Target=[Nom du projet] | Oui | Le nom de votre projet. | Spécifier le projet à utiliser. Le projet actuel est utilisé par défaut si aucun n'est spécifié. |
-Config=[Configuration du build] | Oui | Débogage, DebugGame, Développement, Test, Distribution | Configuration de build cible. Le build Développement est utilisé par défaut en l'absence de spécification. |
-Architecture=[Type d'architecture] | Non | x64, arm64, x64+arm64] | L'architecture de l'appareil cible. |
-flat | Oui | Ne prend pas d'entrées. | Si cette option est spécifiée, les fichiers .dSYM seront des fichiers plats, plus faciles à copier entre ordinateurs ou serveurs. |
Par exemple, la commande suivante génère un fichier .dSYM pour les appareils iOS utilisant l'architecture arm64 :
```RunUAT.command GenerateDYSM -project=MyProject -platform=Mac -target=EngineTestEditor -config=Test -architecutre=arm64```Extraire le rapport de plantage et resymboliquer
Procédez comme suit pour obtenir votre rapport de plantage et le resymboliquer afin de le rendre compréhensible :
Obtenez un fichier
XCrashPointde TestFlight. Pour cela, utilisez la ligne de commande suivante.C++export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"Appuyez sur Ctrl et cliquez sur le fichier
.XCrashPoint, puis cliquez sur Extract.crashfile. Vous pouvez également exporter ces informations à l'aide de la ligne de commande suivante :C++export PATH="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources:$PATH"Ouvrez XCode et consultez le terminal. Utilisez-le pour atteindre votre fichier Xcode
.package.Utilisez l'outil symbolicatecrash en exécutant la ligne de commande suivante :
C++export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" cp -i /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ././symbolicatecrash unsymbolicated.crash symbols.dSYM > symbolicated.crash
Les instructions ci-dessus utilisent les répertoires par défaut. Utilisez les emplacements de vos fichiers .crash et .dSYM lorsque vous exécutez ces lignes de commande.
Xcode affiche alors un journal de plantage contenant des noms de fonctions et des variables compréhensibles.