449 Stimmen

Symbolisierung von iPhone App-Absturzmeldungen

Ich möchte versuchen, die Absturzberichte meiner iPhone-App zu symbolisieren.

Ich habe die Absturzberichte von iTunes Connect abgerufen. Ich habe die Programm-Binärdatei, die ich im App Store eingereicht habe, und ich habe die dSYM-Datei, die als Teil des Builds erstellt wurde.

Ich habe alle diese Dateien in einem einzigen Verzeichnis, das von Spotlight indiziert wird.

Was nun?

Ich habe versucht, sie aufzurufen:

symbolicatecrash crashreport.crash myApp.app.dSYM

und es wird einfach derselbe Text ausgegeben, der zu Beginn im Absturzbericht steht, nicht symbolisiert.

Mache ich etwas falsch?

0voto

Kalle Punkte 13016

Ich habe mich ein wenig darüber geärgert, dass hier nichts "einfach so" zu funktionieren scheint, also habe ich ein wenig nachgeforscht und das Ergebnis ist:

Einrichten: QuincyKit-Backend, das Berichte empfängt. Keine Einrichtung der Symbolisierung, da ich nicht einmal ansatzweise herausfinden konnte, was sie mir vorschlugen, damit es funktioniert.

Die Lösung: Laden Sie die Absturzberichte online vom Server herunter. Sie heißen "crash" und befinden sich standardmäßig im Ordner ~/Downloads/. In diesem Sinne wird dieses Skript "das Richtige tun" und die Absturzberichte gehen in Xcode (Organizer, Geräteprotokolle) und die Symbolisierung wird erledigt sein.

Das Drehbuch:

#!/bin/bash
# Copy crash reports so that they appear in device logs in Organizer in Xcode

if [ ! -e ~/Downloads/crash ]; then 
   echo "Download a crash report and save it as $HOME/Downloads/crash before running this script."
   exit 1
fi

cd ~/Library/Logs/CrashReporter/MobileDevice/
mkdir -p actx # add crash report to xcode abbreviated
cd actx

datestr=`date "+%Y-%m-%d-%H%M%S"`

mv ~/Downloads/crash "actx-app_"$datestr"_actx.crash"

Wenn Sie QuincyKit/PLCR verwenden, können Sie die Dinge so automatisieren, dass Sie sie per Drag & Drop in den Xcode Organizer ziehen können, indem Sie zwei Dinge tun.

Zunächst müssen Sie das Remote-Skript admin/actionapi.php ~Zeile 202 bearbeiten. Es scheint nicht, um den Zeitstempel richtig zu bekommen, so dass die Datei endet mit dem Namen "Crash", die Xcode nicht erkennt (es will etwas Punkt Crash):

header('Content-Disposition: attachment; filename="crash'.$timestamp.'.crash"');

Zweitens, auf der iOS-Seite in QuincyKit BWCrashReportTextFormatter.m ~Zeile 176, ändern @"[TODO]" à @"TODO" um die schlechten Charaktere zu umgehen.

0voto

rpetrich Punkte 32030

Um Abstürze zu symbolisieren, muss Spotlight in der Lage sein, die .dSYM-Datei zu finden, die zur gleichen Zeit erzeugt wurde wie die Binärdatei, die Sie an Apple übermittelt haben. Da sie die Symbolinformationen enthält, haben Sie Pech, wenn sie nicht verfügbar ist.

0voto

Atos ist veraltet. Wenn Sie also OSX 10.9 oder später verwenden, müssen Sie möglicherweise

xcrun atos

Warnung: /usr/bin/atos ist in Bewegung und wird in einer zukünftigen OS X Version entfernt. Es ist jetzt in den Xcode-Entwicklerwerkzeugen verfügbar und kann aufzurufen: xcrun atos

0voto

Mountain Man Punkte 252

Ich verwende Textwrangler gerne, um Fehler in einer ursprünglichen App-Upload-Binär-Ablehnung zu finden. (Die Absturzdaten werden in Ihrem itunesConnect-Konto zu finden.) Mit Sachin Methode oben kopiere ich die original.crash zu TextWrangler, dann kopieren Sie die symbolicatecrash Datei, die ich erstellt habe, um eine andere TextWrangler-Datei. Der Vergleich der beiden Dateien zeigt die Unterschiede auf. Die symbolicatecrash-Datei wird Unterschiede aufweisen, die auf die Datei- und Zeilennummer der Probleme hinweisen.

-2voto

Tim Punkte 1410

Wir verwenden Google Crashlytics zur Überwachung von Absturzprotokollen, das Gefühl ist sehr zeitnah und bequem zu bedienen.

Links zum Dokument https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#missing-dsyms

Alles über fehlende dSYMs Fabric enthält ein Werkzeug zum automatischen Hochladen der dSYMs Ihres Projekts. Das Tool wird über das Skript /run ausgeführt, das während des Onboarding-Prozesses zu Ihrer Run Script Build Phase hinzugefügt wird. Es kann jedoch Situationen geben, in denen dSYM-Uploads aufgrund von einzigartigen Projektkonfigurationen fehlschlagen oder wenn Sie Bitcode in Ihrer Anwendung verwenden. Wenn ein Upload fehlschlägt, ist Crashlytics nicht in der Lage, Abstürze zu symbolisieren und anzuzeigen, und eine "Missing dSYM"-Warnung wird auf Ihrem Fabric-Dashboard angezeigt.

Fehlende dSYMs können manuell hochgeladen werden, indem Sie die unten beschriebenen Schritte befolgen.

Anmerkung: Als Alternative zum automatisierten dSYM-Upload-Tool bietet Fabric ein Kommandozeilen-Tool (upload-symbols), das manuell konfiguriert werden kann, um als Teil des Build-Prozesses Ihres Projekts zu laufen. Siehe den Abschnitt upload-symbols unten für Konfigurationsanweisungen.

...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X