Par défaut, Firebase Crashlytics traite automatiquement vos fichiers contenant les symboles de débogage (dSYM) afin de vous fournir des rapports d'erreur simplifiés et compréhensibles. Vous configurez généralement ce comportement lors de la configuration initiale de Crashlytics dans votre application, en particulier en ajoutant un script d'exécution qui importe automatiquement les fichiers dSYM pendant la phase de compilation de votre application.
Malheureusement, il existe plusieurs cas pouvant entraîner l'échec de l'importation automatique des fichiers dSYM. Ce guide fournit des solutions de dépannage lorsque Crashlytics ne parvient pas à trouver les fichiers dSYM de votre application.
Assurez-vous que Xcode peut traiter automatiquement les fichiers dSYM et les importer.
Lorsque vous avez configuré Crashlytics dans votre application, vous avez configuré un script d'exécution pour traiter automatiquement les fichiers dSYM et les importer.
Assurez-vous que votre configuration du script d'exécution Crashlytics est à jour avec les nouvelles exigences qui ont commencé avec Xcode 15. Si votre configuration n'est pas à jour, l'erreur suivante peut s'afficher:
error: Info.plist Error Unable to process Info.plist at path ...
.
Plus précisément, Xcode 15 et versions ultérieures vous obligent à fournir un ensemble plus complet d'emplacements de fichiers. Pour votre script d'exécution Crashlytics (firebase-ios-sdk/Crashlytics/run
), assurez-vous de disposer de la configuration suivante:
Cliquez sur l'onglet Phases de compilation, puis développez la section Exécuter le script.
Dans la section Fichiers d'entrée, assurez-vous de disposer des chemins d'accès aux emplacements des fichiers suivants:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Vérifier si Xcode produit des dSYM
Le plus souvent, les fichiers dSYM sont manquants, car Xcode ne les produit tout simplement pas. Lorsqu'une importation échoue, Crashlytics affiche une alerte "Missing dSYM" (Fichier dSYM manquant) dans la console Firebase. Si vous recevez cette alerte, vérifiez d'abord que Xcode génère le dSYM correct pour chaque compilation :
Ouvrez votre projet dans Xcode, puis sélectionnez le fichier de projet dans le navigateur Xcode.
Sélectionnez votre cible de compilation principale.
Ouvrez l'onglet Build Settings (Paramètres de compilation) de la cible, puis cliquez sur All (Tout).
Recherchez
debug information format
.Définissez Debug Information Format (Format des informations de débogage) sur DWARF with dSYM File (DWARF avec fichier dSYM) pour tous vos types de compilation.
Recompilez votre application.
Vos rapports d'erreur devraient désormais s'afficher dans le tableau de bord Crashlytics. Si le problème persiste ou si vous rencontrez d'autres erreurs, essayez de localiser vos dSYM et de les importer manuellement dans Crashlytics.
Localiser vos dSYM sur un ordinateur local
Exécutez la commande suivante pour afficher tous les UUID de vos dSYM sur votre machine et rechercher le dSYM manquant:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Une fois que vous avez trouvé le fichier dSYM, importez-le manuellement dans Crashlytics.
Si la commande mdfind
ne renvoie aucun résultat, vous pouvez consulter le répertoire Products
où se trouve votre .app
(par défaut, le répertoire Products
se trouve dans Derived Data
). Si votre application est publiée en production, vous pouvez également rechercher son dSYM dans le répertoire .xcarchive
sur le disque:
Dans Xcode, ouvrez la fenêtre Organizer (Organisateur), puis sélectionnez votre application dans la liste. Xcode affiche la liste des archives de votre projet.
Appuyez sur la touche Ctrl et cliquez sur une archive pour l'afficher dans le Finder. Effectuez un nouveau clic avec le bouton Ctrl, puis cliquez sur Afficher le contenu du package.
.xcarchive
contient un répertoire dSYMs qui contient les dSYM générés dans le cadre du processus d'archivage de Xcode.
Importer vos fichiers dSYM
Crashlytics propose plusieurs méthodes d'importation de vos fichiers dSYM, automatiquement ou manuellement.
(Recommandé) Traiter automatiquement vos fichiers dSYM et les importer
Lorsque vous avez configuré Crashlytics pour la première fois, vous avez probablement configuré ce comportement d'importation automatique pour votre application. Toutefois, si les importations automatiques échouent, vérifiez que votre configuration est correcte.
Importer manuellement vos fichiers dSYM
Si les importations automatiques échouent, vous pouvez importer manuellement vos fichiers dSYM à l'aide de l'une des options suivantes.
Option 1 : utilisez l'option "Glisser-déposer" de la console pour importer un fichier ZIP contenant vos fichiers dSYM (accédez à la console Firebase > Crashlytics > onglet dSYMs).
Option 2 : utilisez le script
upload-symbols
que vous pouvez appeler à partir de n'importe quel point de votre processus de compilation pour importer manuellement vos fichiers dSYM. Pour exécuter le scriptupload-symbols
, utilisez l'une des options suivantes:Option A : Inclure la ligne suivante dans votre processus de compilation :
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
Option B: Exécuter le script directement depuis votre terminal:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
Pour obtenir des remarques d'utilisation et des instructions supplémentaires sur ce script, exécutez
upload-symbols
avec le paramètre--help
.