Symbolische Absturzprotokolle in XCode 4.3.2

8

Immer wenn in meiner Anwendung ein Absturz auftritt, werden die Absturzprotokolle symbolisch im Organizer angezeigt. Jetzt ist das Problem, dass alle Speicheradressen, die auf iOS-Klassen verweisen, symbolisiert werden, aber Speicheradressen meiner Anwendungsklassen werden nicht symbolisiert. Welche XCode-Projekteigenschaft muss ich einstellen, um sie zu aktivieren.

Dies sind die aktuellen Build-Einstellungen, die die Symbolisierung von iOS-Klassen ermöglichen. Ich verwende XCode 4.3.2.

    
Abhinav 12.04.2012, 22:00
quelle

4 Antworten

1

Haben Sie den Scheinwerfer ausgeschaltet? symbolicatecrash verwendet Spotlight, um die Binärdateien und dsym-Dateien zu finden. Wenn Sie Spotlight also ausgeschaltet haben, können Sie sie nicht finden. Wie auch immer, hier ist, wie man eine hex StackTrace Adresse in eine Zeilennummer konvertiert:

[1] Finden Sie die .dSym-Datei, indem Sie auf XCode- & gt; Organizer klicken, auf Archive klicken, dann mit der rechten Maustaste auf das Archiv klicken und in dieses Verzeichnis wechseln (Sie können den Ordner einfach in ein Shell-Fenster ziehen) / p>

[2] cd in das Verzeichnis dSYMs.

[3] Führen Sie den Befehl dwarfdump aus, um die hexadezimale Adresse in eine Zeilennummer in Ihrem Code zu übersetzen:

%Vor%     
CpnCrunch 12.10.2013, 01:22
quelle
1

Strip Debug Symbols During Copy : Sollte in nicht-Debug-Konfigurations-Builds YES sein, da es deine App-Binärdatei um 30-50% in die Luft sprengen wird

Debug Information Format : Sollte für alle Konfigurationen DWARF with dSYM File sein, um Symbole aus beliebigen Binärdateien symbolisieren zu können.

Ich nehme an, dass Sie dies auf Debug-Builds versuchen, auf Builds, die nicht die neuesten Ergebnisse des Build-Befehls in Xcode sind. Sie müssen sich daran erinnern, dass jedes Mal, wenn Sie den Build-Befehl ausführen, eine neue ausführbare Datei und ein neues dSYM-Paket generiert werden und die vorherige überschrieben wird! (Außer wenn Sie die Archivierungsfunktion verwenden)

Das Symbolisierungssyntax analysiert die UUID aus dem Absturzbericht Ihrer App und durchsucht das entsprechende .app- und .app.dSYM-Paket über Spotlight. Wenn also entweder Spotlight den Zielpfad nicht indexiert oder die Binärdateien durch einen anderen Build-Lauf ersetzt werden, ist es nicht möglich, die Apps-Symbole zu symbolisieren.

    
Kerni 14.04.2012 12:49
quelle
0

Versuchen Sie, die Nachbearbeitung der Bereitstellung auf NO zu setzen.

  

DEPLOYMENT_POSTPROCESSING. Wenn Sie diese Einstellung aktivieren, werden die Binärdateien entfernt und der Dateimodus, der Eigentümer und die Gruppe gelöscht   Informationen sollten auf Standardwerte eingestellt sein.

    
lukasz 13.04.2012 00:58
quelle
0

Es scheint, dass xcode die zuletzt archivierte Builddatei .dsym verwendet, um Ihre Logs zu symbolisieren (selbst im Debugging), also versuchen Sie, Ihre App zu archivieren .

Nachdem Sie Ihre App archiviert haben, re-symbolisieren Sie Ihre Absturzberichte.

Es hat für mich funktioniert.

    
M Penades 07.02.2013 10:01
quelle