Pouvez-vous m'aider à symboliser mes accidents?
Dans Xcode 7.3, Fenêtre -> Organiseur -> Crashes, j'ai des rapports de crash de mes dernières versions de TestFlight. Elles ont été construites sur ce Mac et toutes les archives avec les dSYM correspondants se trouvent dans l’onglet Archives. L’application est divisée en un certain nombre de cadres et l’application principale. La plupart sont un mélange de Swift et d’Objectif C. Dans le journal des collisions, je peux voir le nom des cadres et de l’application répertoriés correctement, mais toutes les entrées de mes cadres et app sont en hex. UIKit est symbolisé très bien.
Lorsque je regarde dans iTunes Connect, le message "Oui" indique "Inclut les symboles" et me permet de télécharger les fichiers dSYM. Lors de la construction, l'option "Format des informations de débogage" a été définie sur "DWARF avec dSYM". J'ai essayé de définir "Supprimer les symboles de débogage lors de la copie" et "Supprimer le produit lié" sur "Non" pour voir si cela faisait une différence. Ça n'a pas.
Je ne trouve pas l'application symbolicatecrash sur mon système, pas même dans/usr/bin ou /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash, mais j'ai un code Xcode plus ancien où je pourrait l'attraper. Cependant, cela ne résout plus les symboles.
J'ai le même problème dans Instruments, si je profile mon application, UIKit est symbolisé sans problème, mais mes frameworks et mon application ne montrent que des hexa.
Je sais qu'il y a eu beaucoup de publications à ce sujet, mais je les ai beaucoup parcourues depuis la période de la version 7.3 bêta et jusqu'à maintenant et je n'ai pas trouvé de solution
L'emplacement de symbolicatecrash
a changé dans Xcode 7.3:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
Après avoir lu ceci:
https://developer.Apple.com/library/content/technotes/tn2151/_index.html
vous découvrez que l'App Store est responsable de la symbolisation des rapports d'incident provenant de TestFlight - et non de Xcode. Et il semble que l'App Store ne soit pas très fiable pour le faire.
Voici une solution de contournement.
Allez à l'onglet Archives dans la fenêtre "Organiseur" et assurez-vous que vous avez cliqué sur le bouton "Télécharger le fichier dSYMS ..." à droite de la page, quelle que soit la construction pour laquelle vous souhaitez symboliser un rapport d'incident. Ceci est requis si vous téléchargez en BitCode.
Attachez un périphérique iOS afin qu'il apparaisse dans la fenêtre "Périphériques".
Sélectionnez le périphérique et cliquez sur "Afficher les journaux du périphérique".
Maintenant, retournez à la fenêtre de l'organiseur, sélectionnez l'onglet "Crashes", puis sélectionnez l'un des collisions non symboliques.
Faites un clic droit dessus et sélectionnez "Afficher dans le Finder".
Cliquez avec le bouton droit sur le groupe .xccrashpoint révélé et sélectionnez "Afficher le contenu du paquet".
Accédez à DistributionInfos -> tout -> Journaux.
Faites glisser l’un des fichiers .crash situés dans la partie gauche du volet "Afficher les journaux du périphérique", dans la fenêtre Périphériques.
Attendez une seconde ou deux pour que Xcode symbolise le crash.
Pareil ici. Avoir du mal à trouver le symbole après la mise à niveau vers 7.3.
Cependant, vous pouvez toujours utiliser le atos cependant. Vous pouvez trouver le tutoriel ici Un crash symbolique dans iOS8 avec Xcode 6 .1
Je ne télécharge pas de symboles avec mon application, de sorte que l'App Store ne peut pas symboliser pour moi. J'ai utilisé la solution de contournement suivante pour symboliser tous les crashlogs téléchargés par XCode à partir du magasin. Ces instructions concernent XCode 8. Les chemins de l'application crash symbolicate varient d'une version à l'autre de XCode, mais les idées doivent être les mêmes dans chaque version.
/Users/USERNAME/Library/Developer/Xcode/Archives
) et placez-y votre fichier dsym. Il se peut que ce soit ailleurs, c'est que j'ai vérifié que celui-ci fonctionne./Users/USERNAME/Library/Developer/Xcode/Products/com.company-name.Your-App/VERSION/Crashes
cd /Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/ export set DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
find /Applications/Xcode.app/ -name symbolicatecrash
. En XCode 8, c'est dans /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
/Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/
)for i in `find . -type f -name \*.crash`; do cat $i | /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash --output $i.sym; mv $i.sym $i; done;
Selon la documentation de Xcode 9.0 :
L'organisateur des collisions symbolise les journaux non symbolisés, s'ils sont sélectionnés, à l'aide d'un fichier .dSYM local indexé par Spotlight. (22550064)
Vous pouvez en savoir plus à ce sujet dans La documentation de Xcode .
J'ai essayé de copier le fichier symbolicatecrash de xCode 7.2 et je l'ai collé dans xCode 7.3 dans le chemin suivant:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/Current/Resources/
J'utilise le script Crasher pour symboliser les rapports d'incident Comment utiliser Crasher