Obtenez des rapports d'erreur lisibles dans le tableau de bord Crashlytics

Par défaut, Firebase Crashlytics traite automatiquement vos fichiers de symboles de débogage (dSYM) pour vous fournir des rapports d'erreur clairs et lisibles par l'homme. Vous configurez généralement ce comportement lors de la configuration initiale de Crashlytics dans votre application, notamment en ajoutant un script d'exécution qui télécharge automatiquement les fichiers dSYM pendant la phase de construction de votre application.

Malheureusement, il existe quelques cas qui pourraient entraîner l'échec du téléchargement automatique de vos fichiers dSYM. Ce guide fournit quelques méthodes de dépannage lorsque Crashlytics ne parvient pas à localiser les fichiers dSYM de votre application.

Assurez-vous que Xcode peut traiter automatiquement les dSYM et télécharger les fichiers

Lors de la configuration de Crashlytics dans votre application, vous avez configuré un script d'exécution pour traiter automatiquement les dSYM et télécharger les fichiers.

Assurez-vous que votre configuration pour le script d'exécution de Crashlytics est à jour avec les nouvelles exigences qui ont commencé avec Xcode 15. Si votre configuration n'est pas à jour, vous pourriez obtenir l'erreur suivante :
error: Info.plist Error Unable to process Info.plist at path ... .

Plus précisément, Xcode 15 et versions ultérieures nécessitent que vous fournissiez un ensemble plus complet d'emplacements de fichiers. Pour votre script d'exécution Crashlytics ( firebase-ios-sdk/Crashlytics/run ), assurez-vous que vous disposez de la configuration suivante :

  1. Cliquez sur l'onglet Phases de construction , puis développez la section Exécuter le script .

  2. Dans la section Fichiers d'entrée , assurez-vous d'avoir les 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érifiez si Xcode produit des dSYM

Le plus souvent, les fichiers dSYM disparaissent parce que Xcode ne les produit tout simplement pas. Lorsqu'un téléchargement échoue, Crashlytics affiche une alerte « Missing dSYM » dans la console Firebase. Si vous recevez cette alerte, vérifiez d’abord que Xcode produit le bon dSYM pour chaque build :

  1. Ouvrez votre projet dans Xcode, puis sélectionnez le fichier de projet dans le navigateur Xcode.

  2. Sélectionnez votre cible de build principale.

  3. Ouvrez l'onglet Paramètres de construction de la cible, puis cliquez sur Tout .

  4. Rechercher debug information format .

  5. Définissez le format des informations de débogage sur DWARF avec le fichier dSYM pour tous vos types de build.

  6. Reconstruisez votre application.

Vos rapports d'erreur devraient maintenant apparaître 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 télécharger manuellement sur Crashlytics .

Localisez vos dSYM sur une machine locale

Exécutez la commande suivante pour afficher tous les UUID de vos dSYM sur votre ordinateur et recherchez le dSYM manquant :

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Une fois que vous avez trouvé le dSYM, téléchargez-le manuellement sur Crashlytics . Si la commande mdfind ne renvoie aucun résultat, vous pouvez rechercher dans le répertoire Products où réside votre .app (par défaut, le répertoire Products se trouve dans Derived Data ). Si votre application est mise en production, vous pouvez également rechercher son dSYM dans le répertoire .xcarchive sur le disque :

  1. Dans Xcode, ouvrez la fenêtre Organisateur , puis sélectionnez votre application dans la liste. Xcode affiche une liste d'archives pour votre projet.

  2. Contrôlez-cliquez sur une archive pour l'afficher dans le Finder. Ctrl-cliquez à nouveau dessus, puis cliquez sur Afficher le contenu du package .

  3. Dans .xcarchive se trouve un répertoire dSYM qui contient les dSYM générés dans le cadre du processus d'archivage de Xcode.

Téléchargez vos dSYM

Crashlytics prend en charge plusieurs façons de télécharger vos fichiers dSYMs, automatiquement ou manuellement .

(Recommandé) Traitez automatiquement vos dSYM et téléchargez les fichiers

Lorsque vous avez configuré Crashlytics pour la première fois, vous avez probablement configuré ce comportement de téléchargement automatique pour votre application. Cependant, si les téléchargements automatiques échouent, vérifiez que votre configuration est correcte .

Téléchargez manuellement vos fichiers dSYM

Si les téléchargements automatiques échouent, vous pouvez télécharger manuellement vos fichiers dSYM en utilisant l'une des options suivantes.

  • Option 1 : utilisez l'option « Glisser-déposer » basée sur la console pour télécharger 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 depuis n'importe où dans votre processus de construction pour télécharger manuellement vos fichiers dSYM. Pour exécuter le script upload-symbols , utilisez l'une des options suivantes :

    • Option A : incluez la ligne suivante dans votre processus de génération :

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Option B : Exécutez 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 notes d'utilisation et des instructions supplémentaires sur ce script, exécutez upload-symbols avec le paramètre --help .