2010-04-23 7 views
13

Je ne peux pas arriver à faire mon code symbolicated ... Je lis la partie « ci-dessous »:app Symbolicate adhoc iphone plante

Compte tenu d'un rapport d'accident, le correspondant binaire, et son fichier .dSYM , la symbolisation est relativement facile. La fenêtre Xcode Organizer comporte un onglet pour les rapports d'erreur du périphérique actuellement sélectionné . Vous pouvez voir rapports d'accident reçus en externe dans cet onglet - il suffit de les placer dans le répertoire approprié . C'est le comme le répertoire Mac OS X décrit dans la première section. Il n'a pas d'importance quel appareil vous avez attaché, mais le répertoire dans lequel vous placez le rapport d'erreur doit être le répertoire pour le périphérique connecté et sélectionné.

Il n'est pas nécessaire de placer le fichier binaire et le fichier .dSYM dans un emplacement particulier . Xcode utilise Spotlight et l'UUID pour localiser les fichiers corrects . Il est cependant nécessaire que les deux fichiers soient dans le même répertoire et que ce répertoire soit indexé par Spotlight. Partout dans votre répertoire personnel devrait être bien.

Mais ça ne marche pas pour moi ... voici ce que je faisais:

  • J'ai ouvert organisateur Xcode et j'avais mon appareil iPhone avec les journaux crash
  • fichiers App et dsym sont dans mon projet xcode qui est sur mon bureau

Tout le reste devrait être automatique, non? mais les journaux de collision ne sont pas encore symbolisés ...

Tous les commentaires sont les bienvenus.

Cheers.

Gotye.

+0

êtes le .app et fichiers que vous avez sur votre bureau .dSYM celles exactes qui ont été générés au moment où vous construit votre ad hoc binaire? Toute modification, même mineure, peut perturber le processus de symbolisation. –

Répondre

8

Pour symbolicate votre rapport d'accident, essayez cette approche:

(a) Localisez le symbolicator (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/ a/Ressources/symbolicatecrash)

(b) Ouvrir un terminal et faites glisser ce fichier (de sorte que le chemin est copié correctement)

(c) exécuter une commande comme /Developer/Platforms/iPhoneOS.platform/Developer/ Bibliothèque/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Ressources/symbolique atorcrash .crash.app (mentionner le chemin complet du rapport de l'accident et le fichier app)

(d) le rapport d'accident Symbolicated sera affiché

+0

Le même rapport d'erreur que je reçois dans les journaux de périphériques dans l'organiseur, je reçois en utilisant votre méthode. Pourquoi? –

+0

pour moi, en ajoutant le chemin explicite pour le .app aidé; alors que Xcode (depuis la version 4.2 je pense) a dû l'ignorer - j'obtiens des plantages non symbolisés pour mes applications dans Xcode. – kender

+0

@kender: comme je l'ai mentionné, le chemin complet de l'application et du rapport d'erreur doit être mentionné, je suis confondu avec le bit de rapport non symbolisé, quelle version de Xcode utilisez-vous? –

5

étapes pour analyser le rapport d'accident de la pomme:

  1. Copie la sortie Le fichier .app qui a été transmis à l'appstore, le fichier .dSYM créé au moment de la publication et le rapport d'erreur reçu d'APPLE dans un DOSSIER.

  2. application du terminal OPEN et allez dans le dossier créé ci-dessus (en utilisant la commande CD)

  3. atos -arch ARMv7 -o '(nom de fichier .app ici)'/'(. Nom de fichier dSYM ici)' (Emplacement de la mémoire dans le rapport d'accident où le crash s'est produit). L'emplacement de la mémoire devrait être celui où l'application s'est plantée selon le rapport.

Ex: atos -arch ARMv7 -o 'app name.app'/'app name' 0x0003b508

Cela vous montrer la ligne exacte, le nom de la méthode qui a donné lieu à l'accident.

Merci

+0

Ce n'est pas la même chose que la symbolisation de l'ensemble du rapport d'erreur. Cela vous donne le symbole correspondant pour une seule adresse. –

+0

@DaveCameron Oui ce qui précède n'a fait que cela mais si utilisé sans adresse, il vous permet d'analyser plusieurs emplacements en soumettant l'adresse un par un. http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports/4954949#4954949 –

12

J'ai eu du mal avec cela pendant plusieurs jours et finalement figured it out. Je n'ai pas pu obtenir les journaux symbolisés à partir d'une application archivée que j'ai installée sur mon téléphone. Pour moi, c'était un problème avec les paramètres de construction, bien que j'ai remarqué qu'il était capable de symboliser les journaux de certaines versions plus anciennes après avoir suivi ces étapes. YMMV peut varier avec les journaux de plantage des anciennes générations. J'ai été en mesure d'obtenir des journaux symbolisés après avoir suivi ces étapes dans Xcode 4.0.1 sur iOS 4.3.1.

Dans le navigateur de projet Xcode, cliquez sur votre projet, puis sur Paramètres de construction. Lorsque vous archivez votre application, Xcode utilise la configuration Release par défaut. Vous ne devez définir que les valeurs suivantes pour la configuration Release: vous devrez donc étendre les paramètres qui ne sont pas déjà développés pour vous permettre de le configurer par configuration.

assurer que ces valeurs sont définies pour la configuration de sortie:

  • Générer des symboles de débogage: Oui
  • Informations de débogage Format: Dwarf avec dSYM Fichier
  • Déploiement post-traitement: Oui
  • Strip Linked produit: Oui
  • Utiliser une bande séparée: Oui
  • Symboles de débogage de bande pendant la copie: Non
  • Strip Style: Tous les symboles

Une fois que ceux-ci sont mis, d'archivage et de réinstaller votre application. Les nouveaux rapports d'erreur générés à partir de l'archive résultante doivent être symbolisés correctement. Pour moi, de nombreux anciens rapports de crash sont également symbolisés correctement après avoir suivi ces étapes bien que je ne sois pas sûr de la précision des résultats si les builds étaient très différents.

Pour référence, je me suis tout ça après avoir étudié cette page: http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

J'ai aussi trouvé cette page, ce qui est pratique si vous essayez de comprendre ce qu'est un paramètre de construction particulier fait: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Espérons que cela aide!

Dan

+0

Générer le débogage - Oui, Debug Info Dwarf + dSym, Déboguer le débogage Durig Copier Non, Strip Style All, sont tous réglés comme ça par défaut. Le post-traitement du déploiement et le produit lié par bandes n'ont eu aucun effet sur moi. Cependant, utilisez la bande séparée est ce qui l'a fait fonctionner! Je vous remercie – dizy