web-dev-qa-db-fra.com

Incapacité de Xcode 4 à symboliser le journal des collisions

Je viens de mettre à jour mon Xcode vers la version 4.0.1. Maintenant, j'ai un problème avec la symbolique des journaux de crash reçus de mon testeur et même de mon téléphone. 

Lorsque je construis la distribution AdHoc, j'utilise le système "Arhive", puis je crée le fichier * .ipa en le chantant avec mes informations d'identification de développeur.

Est-ce le problème? Et je ne trouve pas les fichiers dSym pour ces versions AdHoc.

37
Andrei Neacsu

Suite à la réponse de coob, je trouve que l'ajout de ces répertoires à la liste des ignorés de Spotlight (Préférences Système → Spotlight → Confidentialité) aide:

  • ~/Library/Developer/Xcode/DerivedData/ (artefacts de construction de Xcode 4)
  • ~/Library/Application Support/iPhone Simulator/ (système de fichiers pour le simulateur iPhone)

Comme ça:

Spotlight settings to suppress unhelpful .app files

(Voir cet article de blog pour plus de détails.)

Update: extrait d'un commentaire de joerick : "Cela fonctionne, mais cela signifiait également que Instruments.app ne parvenait pas à trouver les symboles de débogage; . " - gardez cela à l’esprit si vous utilisez des instruments.

24
Simon Whitaker

Pour moi, ni la ligne 323 ni les exclusions de Spotlight ne l'ont corrigée. J'ai donc repéré les problèmes dans symbolicatecrash et publié une version corrigée sur github . Il suffit de remplacer/usr/local/bin/symbolicatecrash et vos rapports d'incident iOS recommenceront à symboliser.

Ce correctif peut ne pas fonctionner pour les applications Mac, car il pose des hypothèses sur la structure du répertoire .xcarchive qui ne semble pas être valable pour les applications de bureau.

Edit: vous pouvez toujours rencontrer des problèmes si Spotlight n'a pas indexé vos archives. Vous pouvez obtenir forcer un index en lançant ce qui suit dans un terminal:

mdimport ~/Library/Developer/Xcode/Archives/

Plus d'infos sur le dépannage ici .

24

Le script de symbolisation a un problème pour trouver le bon fichier binaire/dSYM. Il utilise Spotlight pour le faire et se fait souvent mal. Voici quelques choses à essayer:

  1. Assurez-vous que votre .app ne contient pas unspace.

  2. Trouver la version de Votre application installée sur le simulateur peut-être. Réinitialisez votre simulateur.

  3. Effacer votre répertoire de construction.

3
Alastair Stuart

J'ai eu le même problème aujourd'hui. D'après mes recherches sur le Web, il y a un problème avec les bibliothèques armv6 qui provoque l'échec du processus de symbolicate. J'ai trouvé la réponse dans les forums dev ici .

Pour ceux sans accès, vous devez créer une copie du script symbolicatecrash à partir de /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/. Editez le fichier et remplacez le "dé" de la ligne 323 par un "print" (c'est pourquoi il ne fonctionne pas, le script échoue ici).

Exécutez ensuite symbolicatecrash dans votre journal des collisions. Vous verrez l'erreur de la ligne 323, mais cela symbolisera toutes les vos lignes et variables. Il échoue toujours pour les bibliothèques système, mais il donne assez d’informations pour corriger vos propres bogues.

J'espère que cela t'aides.

3
Hiltmon

Pour localiser un fichier dSYM en fonction de son identifiant dans un crashlog ressemblant à ceci:

Images binaires: 0x100000000 - 0x100021ff7 + com.developer.foobar 1.1 (2) <D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8> /Applications/FooBar.app/Contents/MacOS/FooBar

tu peux faire:

mdfind com_Apple_xcode_dsym_uuids == D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8

Pour les applications OSX créées avec "DWARF avec dSYM", vous n'avez pas réellement besoin du fichier dSYM et pouvez utiliser l'approche manuelle à l'adresse suivante: https://developer.Apple.com/library/content/technotes/tn2151/_index.html#/./Apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS

De plus, pour vérifier l’UID d’un binaire, vous pouvez faire quelque chose comme: 

dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote 

UUID: 6194D2B0-4E61-3834-AD15-C279EB1848XX (armv7)
UUID: D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8 (armv7s)

0
valexa

Je pense que j'ai eu ce problème, ou quelque chose de similaire . Xcode 4.0 n'affichait pas les symboles pour un crash que j'ai eu d'un testeur . le fichier dsym à partir de celui-ci (clic droit et 'afficher le contenu du paquet') pour s’asseoir à côté de lui dans le dossier d’archive. Je ne peux pas garantir que c'était la solution. J'essayais de nombreuses autres solutions à l'époque, mais je sais que j'ai les symboles maintenant et que je n'en avais pas auparavant. Ça vaut le coup d'essayer?

0
Nic