Frage

Ich suche meine iPhone App Crash-Berichte zu versuchen und symbolicate.

Ich holte die Absturzberichte von iTunes Connect. Ich habe die Anwendung binär, die ich in den App Store eingereicht und ich habe die DSYM Datei, die als Teil des Build generiert wurde.

Ich habe all diese Dateien zusammen in einem einzigen Verzeichnis, das von Spotlight indiziert ist.

Was nun?

Ich habe versucht, rufenden:

symbolicatecrash crashreport.crash myApp.app.dSYM

und es gibt nur den gleichen Text, der im Crash-Bericht ist zu beginnen, nicht symbolicated.

Mache ich etwas falsch?

War es hilfreich?

Lösung

Schritte zum Absturzbericht von Apple zu analysieren:

  1. die Freigabe .app-Datei kopieren, die in den Appstore geschoben wurde, die .dSYM-Datei, die zum Zeitpunkt der Veröffentlichung und der Crash-Bericht erstellt wurde, erhalten von Apple in ein Ordner .

  2. OPEN Terminal-Anwendung und in den Ordnern oben erstellt (mit cd Befehl)

  3. Ausführen atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH. Der Speicherplatz sollte derjenige sein, an dem die App nach dem Bericht abgestürzt ist.

Ex: atos -arch armv7 -o 'APPNAME.app'/'APPNAME' 0x0003b508

Dies würde zeigen Ihnen die genaue Zeile, Methodennamen, die in Crash geführt.

Ex: [classname functionName:]; -510

Symbolicating IPA

Wenn wir IPA für symbolicating verwenden - nur die Erweiterung .ipa mit .zip umbenennen, entpacken Sie es, dann können wir einen Payload-Ordner erhalten, die App enthalten. In diesem Fall brauchen wir keine .dSYM Datei.

Hinweis

Dies kann nur funktionieren, wenn die App binär gestrippt hat keine Symbole. Standardmäßig Release-Builds die Symbole gestrippt. Wir können es in Build-Projekt ändern Einstellungen „Strip-Debugsymbole Während Kopieren“ auf NO.

Weitere Details finden Sie diese Post

Andere Tipps

Nach der Lektüre all diesen Antworten ein, um ein Crash-Protokoll symbolicate (und nachfolgenden endlich) Ich denke, es gibt einige Punkte hier fehlen, die um wirklich wichtig sind, um zu bestimmen, warum der Aufruf von symbolicatecrash erzeugt keine symbolicated Ausgabe.

Es gibt 3 Vermögenswerte, die zusammen passen müssen, wenn ein Crash-Protokoll symbolicating:

  1. Die Absturzprotokolldatei selbst (das heißt example.crash), entweder von XCode des Veranstalters exportiert oder von iTunes Connect erhalten.
  2. Das .app Paket (d.h. example.app), dass sich die Anwendung binäre Zugehörigkeit zur crash-Protokoll enthält. Wenn Sie ein Paket .ipa haben (das heißt example.ipa), dann können Sie das .app Paket extrahieren, indem das .ipa Paket unzipping (das heißt unzip example.ipa). Danach wird das .app Paket befindet sich in dem extrahierten Payload/ Ordner.
  3. Das .dSYM Paket die Debug-Symbole enthält, (d example.app.dSYM)

Vor symbolication beginnen, sollten Sie überprüfen, ob alle diese Artefakte übereinstimmen, was bedeutet, dass die Crash-Protokoll zu dem binären gehört, die Sie haben und dass die Debug-Symbole sind die, die während der Erstellung dieser binären erzeugt wird.

Jeder binäre wird durch eine UUID bezeichnet, die in der Crash-Log-Datei zu sehen ist:

...
Binary Images:
0xe1000 -    0x1f0fff +example armv7  <aa5e633efda8346cab92b01320043dc3> /var/mobile/Applications/9FB5D11F-42C0-42CA-A336-4B99FF97708F/example.app/example
0x2febf000 - 0x2fedffff  dyld armv7s  <4047d926f58e36b98da92ab7a93a8aaf> /usr/lib/dyld
...

In diesem Extrakt das Crash-Protokoll binäres Bild zu einer App example.app/example mit UUID aa5e633efda8346cab92b01320043dc3 Namen gehört.

Sie können die UUID des Binärpaket überprüfen Sie mit dwarfdump:

dwarfdump --uuid example.app/example
UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app/example

Danach sollten Sie überprüfen, ob die Debug-Symbole, die Sie auch zu diesem binären gehören haben:

dwarfdump --uuid example.app.dSYM
UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app.dSYM/Contents/Resources/DWARF/example

In diesem Beispiel sind alle Vermögenswerte passen zusammen, und Sie sollten in der Lage sein, Ihre Stacktrace symbolicate.

Proceeding zum symbolicatecrash Skript:

In Xcode 8.3 sollten Sie in der Lage sein, das Skript aufzurufen über

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v example.crash 2> symbolicate.log

Wenn es nicht vorhanden ist, können Sie eine find . -name symbolicatecrash in Ihrem Xcode.app Verzeichnis führen Sie es zu finden.

Wie Sie sehen, gibt es keine gegeben mehr Parameter. So hat das Skript Ihre Anwendung binär und Debug-Symbole finden, indem Sie eine Spotlight-Suche ausgeführt wird. Es sucht die Debug-Symbole mit einem bestimmten Index genannt com_apple_xcode_dsym_uuids. Sie können dies selbst tun suchen:

mdfind 'com_apple_xcode_dsym_uuids = *'

resp.

mdfind "com_apple_xcode_dsym_uuids == AA5E633E-FDA8-346C-AB92-B01320043DC3"

Der erste Strahler Aufruf gibt Ihnen alle indiziert DSYM Pakete und die zweite gibt Ihnen die .dSYM Pakete mit einem bestimmten UUID. Wenn Scheinwerfer Ihr .dSYM Paket dann nicht finden symbolicatecrash wird keines von beiden. Wenn Sie dies tun alle Sachen z.B. in einem Unterordner Ihres ~/Desktop Scheinwerfer alles in der Lage finden sollte.

Wenn symbolicatecrash findet Ihr .dSYM Paket eine Zeile wie die folgende in symbolicate.log sein sollte:

@dsym_paths = ( <SOME_PATH>/example.app.dSYM/Contents/Resources/DWARF/example )

Für Ihr .app Paket einer Spotlight-Suche wie die folgenden finden von symbolicatecrash aufgerufen wird:

mdfind "kMDItemContentType == com.apple.application-bundle && (kMDItemAlternateNames == 'example.app' || kMDItemDisplayName == 'example' || kMDItemDisplayName == 'example.app')"

Wenn symbolicatecrash findet Ihr .app Paket sollte der folgende Auszug in symbolicate.log sein:

Number of symbols in <SOME_PATH>/example.app/example: 2209 + 19675 = 21884
Found executable <SOME_PATH>/example.app/example
-- MATCH

Wenn alle diese Ressourcen durch symbolicatecrash gefunden werden, sollten sie die symbolicated Version Ihres Crash-Protokoll ausdrucken.

Wenn Sie nicht in Ihrem DSYM passieren können und .app-Dateien direkt.

symbolicatecrash -v --dsym <SOME_PATH>/<App_URI>.app.dSYM/<APP_NAME>.app.dsym <CRASHFILE> <SOME_OTHER_PATH>/<APP_NAME>.app/<APP_NAME> > symbolicate.log

. Hinweis: Die symbolicated Backtrace wird ausgegeben an der Klemme, nicht symbolicate.log

Mit der neuesten Version von Xcode (3.2.2), können Sie alle Crash-Berichte in den Geräteprotokolle Abschnitt des Xcode Organizer ziehen und sie werden automatisch von Ihnen symbolicated. Ich denke, das funktioniert am besten, wenn Sie diese Version der App gebaut mit Build & Archiv (auch Teil der Xcode 3.2.2)

Ich tat dies erfolgreich, mit den folgenden Schritten.

Schritt 1: einen Ordner im Desktop erstellen, gebe ich Namen, um ihn "CrashReport" und legte drei Dateien ( "MYApp.app", "MyApp.app.dSYM", „MYApp_2013-07 -18.crash ") in ihm.

Schritt 2: Öffnen Sie den Finder und gehen Sie zu den Anwendungen, wo Sie die Xcode Anwendung finden, direkt darauf klicken und klicken Sie „Paketinhalt zeigen“, danach diesen einfachen Weg folgen.  "Contents> Entwickler-> Platforms-> iPhoneOS.platform-> Entwickler-> Library-> Private -> DTDeviceKit.framework -> Versions-> A-> Ressourcen"

oder

"Contents> Entwickler-> Platforms-> iPhoneOS.platform-> Entwickler-> Library-> Private -> DTDeviceKitBase.framework -> Versions-> A-> Ressourcen"

oder

Für Xcode 6 und über dem Weg ist Anwendungen / Xcode.app / Contents / SharedFrameworks / DTDeviceKitBase.framework / Versions / A / Ressourcen

Wenn Sie „symbolicatecrash“ Datei finden, kopieren Sie diese und fügen Sie ihn auf „CrashReport“ -Ordner.

Schritt 3: , um das Terminal starten, führen Sie diesen 3 Befehl

  1. cd / Users / mac38 / Desktop / CrashReport und drücken Sie Enter-Taste

  2. export DEVELOPER_DIR = "/ Applications / Xcode.app / Contents / Entwickler" und drücken Sie die Eingabetaste

  3. ./ symbolicatecrash -A -v MYApp_2013-07-18.crash MyApp.app.dSYM und drücken Sie Geben Sie jetzt ihre Fertig .. (Hinweis: Versionen um 6.4 oder höher haben nicht die Option -A - einfach verlassen out).

Schritte einen Fehlerbericht symbolicate automatisch XCode mit:

AKTUALISIERT FÜR XCODE 9

  1. Verbinden jeden iOS-Gerät mit Ihrem Mac (ja einem physischen, ja, ich weiß, das ist dumm)

  2. Wählen Sie „Geräte“ aus dem Menü „Fenster“ eingeben Bild Beschreibung hier

  3. Klicken Sie auf Ihr Gerät auf der linken und VIEW DEVICE LOGS auf der rechten Seite eingeben Bild Beschreibung hier

  4. Bitte warten. Es könnte eine Minute dauern, zu zeigen. Vielleicht dann tun Command-A Delete wird dies beschleunigen.

  5. Critical undokumentierte Schritt: , um den Crash-Bericht umbenennen, die Sie von iTunesConnect von .txt Erweiterung bekam Erweiterung .crash

  6. Ziehen Sie den Crash-Bericht in diesem Bereich auf der linken Seite eingeben Bild Beschreibung hier

Und dann Xcode wird den Absturzbericht symbolicate und die Ergebnisse anzuzeigen.

Quelle: https://developer.apple.com/library/ ios / technotes / tn2151 / _index.html

Ich benutze Airbrake in meine apps, die eine ziemlich gute Arbeit bei der Remote-Fehlerprotokollierung der Fall ist.

Hier ist, wie ich symbolicate sie mit atos, wenn der Backtrace es braucht:

  1. In Xcode (4.2) an den Veranstalter gehen, klicken Sie rechts auf das Archiv aus der die .ipa-Datei generiert.

  2. Im Terminal, cd in die xcarchive zum Beispiel MyCoolApp 10-27-11 1.30 PM.xcarchive

  3. Geben Sie die folgende atos -arch armv7 -o 'MyCoolApp.app'/'MyCoolApp' (Nicht die einfachen Anführungszeichen vergessen)

  4. ich mein Symbol nicht in diesem Anruf gehören. Was man bekommt, ist ein Block-Cursor auf eine leere Zeile.

  5. Dann kopiere ich / meinen Symbolcode an diesem Block Cursor und Preßpaste eingeben. Sie werden sehen, so etwas wie:

    -[MyCoolVC dealloc] (in MyCoolApp) (MyCoolVC.m:34)

  6. Sie sind zurück zu einem Block-Cursor und Sie können auch in anderen Symbole einfügen.

Die Möglichkeit, durch Ihr Backtrace ein Element zu gehen, ohne das erste Bit Wiedereintritt ist eine schöne Zeitersparnis.

Genießen Sie!

ich auch DSYM, app-Bundle und Crash-Protokoll zusammen im selben Verzeichnis vor symbolicate Absturz läuft

Dann benutze ich diese Funktion in meinem .profile definiert symbolicatecrash zu vereinfachen ausgeführt wird:

function desym
{
    /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -A -v $1 | more
}

Die Argumente hinzugefügt es kann Ihnen helfen.

Sie können überprüfen, indem Sie den Befehl sicher Rampenlicht „sieht“ Ihre dysm Dateien zu machen:

mdfind 'com_apple_xcode_dsym_uuids = *'

Achten Sie auf das DSYM Sie in Ihrem Verzeichnis haben.

Hinweis: Ab dem neuesten Xcode gibt es nicht mehr ein Entwickler-Verzeichnis. Sie können dieses Dienstprogramm finden Sie hier:

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Vers Ionen / A / Resources / symbolicatecrash

Nur eine einfache und aktualisierte Antwort für Xcode 6.1.1.

STEPS

1.Xcode> Fenster> Geräte.

2.Select ein Gerät aus einer Liste von Geräten unter Abschnitt DEVICES.

3.Select Ansicht Geräteprotokolle.

4.Under All Logs Abschnitt können Sie direkt die report.crash Drag & Drop

5.Xcode den Absturzbericht automatisch für Sie Symbolicate.

6.You kann den Symbolicated Crash-Bericht findet durch sein Datum / Uhrzeit mit dem Datum der Anpassung / Zeit im Crash-Bericht erwähnt.

Auch wenn ich apps seit ein paar Jahren hatte jetzt entwickeln, war dies mein erstes Mal Debuggen ein binäres und ich fühlte mich wie ein kompletter NOOB herauszufinden, wo alle Dateien also waren, wo ist * .app * .dSYM und Crash-Protokolle ? Ich hatte mehrere Beiträge zu lesen, um es herauszufinden. Ein Bild sagt mehr als tausend Worte, und ich hoffe, dieser Beitrag sonst jemanden in Zukunft hilft.

1- Zuerst gehen iTunesConnect und Ihre Absturzprotokolle herunterladen. HINWEIS: Ist den meisten Fällen Sie so etwas wie bekommen können „Zu wenige Berichte für einen Bericht vorgelegt wurden gezeigt werden.“ Grundsätzlich nicht genügend Nutzer abgegeben haben Crashlog Berichte an Apple, in dem Fall, dass Sie nicht an diesem Punkt so gut wie nichts tun.

eingeben Bild Beschreibung hier

eingeben Bild Beschreibung hier

2- Nun, wenn Sie Ihren Code nicht geändert hatte, da Sie Ihre binären es an Apple eingereicht hatte dann Xcode starten für das Projekt und tun Produkt -> Archiv wieder. Ansonsten nur finden Ihre neuesten binären eingereicht und rechten Maustaste darauf.

eingeben Bild Beschreibung hier

eingeben Bild Beschreibung hier

eingeben Bild Beschreibung hier

eingeben Bild Beschreibung hier

In Xcode 4.2.1, öffnen Organizer , dann gehen Sie auf Library / Logs Geräte und ziehen Sie Ihre .crash-Datei in der Liste der Absturzprotokolle. Es wird für Sie nach wenigen Sekunden wird symbolicated.

Beachten Sie, dass Sie die gleiche Instanz von Xcode verwenden müssen, dass die ursprüngliche Build auf archiviert wurde (das heißt das Archiv für Ihren Build muss existieren in Organizer ).

Mit Xcode 4, die Aufgabe ist noch einfacher:

  • open Organizer ,
  • Klicken Sie auf Bibliothek | Geräteprotokoll in der linken Spalte
  • Klicken Sie auf " Importieren " Taste auf der Unterseite des Bildschirms ...

und voilà. Die Log-Datei wird importiert und automatisch für Sie Symbolisiert. Vorausgesetzt, Sie sind die Build Archi mit Xcode -> Produkt -.> Archiv ersten

Die magische Xcode Organizer ist nicht so magisch über meine App symbolicating. Ich habe überhaupt keine Symbole für die Crash-Berichte, die ich von einer ausgefallenen App Vorlage zurück von Apple bekam.

Ich habe versucht, die Befehlszeile, die Crash-Bericht im selben Ordner wie die .app-Datei setzen (die ich in den Laden gestellt) und die .dSYM-Datei:

$ symbolicatecrash "My App_date_blahblah-iPhone.crash" "My App.app"

Dies ist nur vorgesehen Symbole für meine Anwendung und nicht der Kern Fundament Code, aber es war besser als die Zahl Dump, die Organizer gibt mir und reichte mir den Absturz zu finden und zu beheben, die meine app hatte. Wenn jemand weiß, wie dies zu verlängern Foundation Symbole, um es geschätzt würde.

In meinem Fall ich schleppte Crash-Berichte direkt aus Mail an den Veranstalter. Aus irgendeinem Grund, dass die Crash-Berichte vom Erhalten symbolicated (I gerne wissen würde, warum) verhindert.

auf den Desktop die Absturzberichte Kopieren zuerst, und dann von dort an den Veranstalter ziehen konnte sie symbolicated richtig.

Sehr spezieller Fall, den ich kenne. Aber dachte, ich würde nur für den Fall teilen.

Hier ist ein weiteres Problem, das ich mit symbolicatecrash haben - es wird nicht mit Apps arbeiten, die Leerzeichen in ihrem Bündel (d ‚Test App.app‘) haben. Hinweis Ich glaube nicht, Sie Leerzeichen im Namen haben bei der Einreichung so sollten Sie diese auf jeden Fall entfernen, aber wenn Sie bereits Abstürze haben, die Analyse benötigen, Patch symbolicatecrash (4.3 GM) als solche:

240c240
<         my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == $exec_name.app\"";
---
>         my $cmd = "mdfind \"kMDItemContentType == com.apple.application-bundle && kMDItemFSName == '$exec_name.app'\"";
251c251
<             my $cmd = "find \"$archive_path/Products\" -name $exec_name.app";
---
>             my $cmd = "find \"$archive_path/Products\" -name \"$exec_name.app\"";

Für Airbrake diejenigen verwenden, gibt es eine solide Antwort oben, aber es wäre für mich nicht funktionieren ohne Tweaking:

Werke für einige Speicheradressen, andere aber nicht, nicht sicher, warum ...

  • Erstellen Sie neues Verzeichnis auf dem Desktop oder wo auch immer
  • Suchen Archiv in Frage in Xcode Organizer
  • Tippen Sie zweimal in Finder offenbaren
  • Tippen Sie zweimal zeigen Bündel Inhalt
  • Kopieren .dSYM Datei und .app-Datei in neu dir
  • cd in neu dir
  • Führen Sie diesen Befehl: atos -arch ARMv7 -o 'Vimeo.app' / 'Vimeo'
  • Terminal wird geben Sie eine interaktive Bewegung
  • Einfügen in Speicheradresse und drücken Sie die Eingabetaste, wird es ausgegeben Methodennamen und die Zeilennummer
  • Alternativ geben Sie diesen Befehl ein: atos -arch ARMv7 -o 'Vimeo.app' / 'Vimeo' Um Informationen für eine Adresse nur

Die Kombination, die für mich gearbeitet wurde:

  1. Kopieren Sie die DSYM-Datei in das Verzeichnis, in dem der Crash-Bericht war
  2. Entpacken Sie die Datei ipa die App ( 'unzip MyApp.ipa')
  3. enthalten
  4. Kopieren Sie die Anwendung binär aus der resultierenden explodierte Nutzlast in den gleichen Ordner wie die Crash-Bericht und Symboldatei (So etwas wie „MyApp.app/MyApp“)
  5. Import oder Re-symbolicate der Absturzbericht aus Xcode des Veranstalters

Mit atos Ich war nicht in der Lage die richtige Symbolinformation mit den Adressen und Offsets zu lösen, die im Crash-Bericht waren. Als ich das tat, ich sehe etwas Sinnvolles, und es scheint ein legitimer Stack-Trace zu sein.

ich viel Hacking des symbolicatecrash Skript zu tun hatte, um es richtig zu laufen.

Soweit ich das beurteilen kann, symbolicatecrash erfordert jetzt die .app als .dsym im gleichen Verzeichnis zu sein. Es wird die .dsym verwenden, um das .app zu finden, aber es wird nicht die DSYM verwenden, um die Symbole zu finden.

Sie sollten eine Kopie Ihrer symbolicatecrash machen, bevor diese Patches versuchen, die sie in der DSYM aussehen wird:

Um die Leitung 212 in der getSymbolPathFor_dsymUuid Funktion

212     my @executablePath = grep { -e && ! -d } glob("$dsymdir" . "/Contents/Resources/DWARF/" . $executable);

Um Linie 265 in der matchesUUID Funktion

265             return 1;

Das ist ganz einfach, nach viel Suche i klare Schritte symbolicate ganze Crash Log-Datei.

gefunden
  • Kopie .app, crash_report und DSYM Dateien in einem Ordner.
  • schließen Sie das Gerät mit Xcode
  • Gehen Sie dann zum Fenster -> wählen Sie Geräte -> Ansicht Geräteprotokolle
  • Sie dann dieses Gerät auswählen, löschen Sie alle Protokolle.
  • Drag & Drop Absturz auf Geräteprotokoll Abschnitt. es wird den Absturz automatisch symbolicate. genau richtig auf Bericht klicken und es exportieren.

glücklich Codierung,
Riyaz

Ich bevorzuge Skript , die alle meine Absturz Protokolle symbolicate.

Voraussetzungen

Erstellen Sie einen Ordner und setzen es 4 Dinge:

  1. symbolicatecrash Perl-Skript - es gibt viele SO Antworten, die die Lage

  2. sagt
  3. Das Archiv der Build, die Abstürze (von Xcode Organizer. Einfach wie Show in Finder und Kopie) entspricht [mir nicht sicher, dass dies necessery]

  4. Alle xccrashpoint Pakete - (. Von Xcode Organizer Show in Finder, können Sie alle Pakete in das Verzeichnis kopieren, oder die einzelnen xccrashpoint möchten Sie symbolicate mögen)

  5. Fügen Sie diese kurze Skript in das Verzeichnis:

    #!/bin/sh
    
    echo "cleaning old crashes from directory"
    rm -P *.crash
    rm -P *.xccrashpoint
    rm -r allCrashes
    echo "removed!"
    echo ""
    echo "--- START ---"
    echo ""
    
    mkdir allCrashes
    mkdir symboledCrashes
    find `ls -d *.xccrashpoint` -name "*.crash" -print -exec cp {} allCrashes/ \;
    
    cd allCrashes
    for crash in *.crash; do
        ../symbolicatecrash $crash > ../symboledCrashes/V$crash
    done
    cd ..
    
    echo ""
    echo "--- DONE ---"
    echo ""
    

Das Script

Wenn Sie das Skript ausführen, werden Sie zwei Verzeichnisse erhalten.

  1. allCrashes -. Alle Abstürze von allen xccrashpoint wird es

  2. symboledCrashes - die gleichen Abstürze aber jetzt mit allen Symbolen

  3. .
  4. Sie müssen das Verzeichnis nicht reinigen von alten abstürzt, bevor das Skript ausgeführt wird. es wird automatisch reinigen. Viel Glück!

Um Abstürze symbolicate muss Spotlight Lage sein, die .dSYM Datei zu finden, die zur gleichen Zeit erzeugt wurde, die binäre Sie Apple eingereicht wurde. Da es die Symbolinformationen enthalten, so werden Sie kein Glück, wenn es nicht verfügbar ist.

habe ich ein bisschen mürrisch über die Tatsache, wir haben hier nichts scheint zu „funktionieren“, so habe ich einige untersuchen und das Ergebnis ist:

ein: QuincyKit Backend, die Berichte erhält. Kein symbolication einrichten, wie ich konnte nicht einmal, um herauszufinden, beginnen, was sie darauf hindeutet, ich tun, damit es funktioniert.

Die fix: Download Crash-Berichte vom Server online. Sie sind ‚Crash‘ genannt und wird standardmäßig gehen in die ~ / Downloads / Ordner. Vor diesem Hintergrund wird das Skript „das Richtige tun“ und die Crash-Berichte gehen in Xcode (Organizer, Geräteprotokolle) und symbolication wird durchgeführt werden.

Das Skript:

#!/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"

Die Dinge können automatisiert werden, wo Sie, indem Sie zwei Dinge in Xcode Organizer ziehen können, wenn Sie QuincyKit / PLCR verwenden tun.

Zum einen haben Sie die Remote-Skript admin / actionapi.php bearbeiten ~ Linie 202. Es scheint nicht, den Zeitstempel richtig zu machen, so dass die Datei endet mit dem Namen ‚Crash‘ auf die Xcode nicht erkennt ( es will Absturz etwas Punkt):

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

Zum anderen in der iOS-Seite in QuincyKit BWCrashReportTextFormatter.m ~ Linie 176, Änderung @"[TODO]" @"TODO" um die schlechten Zeichen zu erhalten.

atos wird veraltet also, wenn Sie mit OSX 10.9 oder höher können Sie ausführen müssen

xcrun atos

  

Achtung: / usr / bin / atos bewegt und wird von einem zukünftigen OS entfernt werden   X-Release. Es ist nun in den Xcode Entwickler-Tool zur Verfügung steht   aufgerufen über: xcrun atos

Ich mag TextWrangler verwenden, um Fehler in einer ursprünglichen App laden binäre Ablehnung genau zu bestimmen. (Die Crash-Daten werden in Ihrem iTunesConnect Konto zu finden.) Mit Sachin Methode oben ich die original.crash zu TextWrangler kopieren, kopieren Sie die Datei symbolicatecrash ich in einer anderen TextWrangler Datei erstellt habe. Ein Vergleich der beiden Dateien lokalisiert Unterschiede. Die symbolicatecrash Datei Unterschiede haben, die die Datei und die Zeilennummer von Problemen hinweisen.

fand ich die meisten der vorgeschlagenen Alternativen aus nicht in neuesten XCode arbeiten (getestet mit Xcode 10). Zum Beispiel hatte ich kein Glück Drag & Drop .crash logs in Xcode -> Organizer -.> Geräteprotokolle -Blick

I Symbolicator Tool https://github.com/agentsim/Symbolicator

  • Git-Klon Symbolicator Repository und kompilieren und ausführen mit Xcode
  • Kopieren .crash-Datei (ASCII-Datei, mit Stack-Trace in der Datei Betteln) und .xarchive Freigabe gleichen Absturz temporarly Ordner
  • Ziehen und .crash Datei auf Symbolicator Symbol im Dock fallen
  • In 5-30 Sekunden symbolicated Crash-Datei wird im selben Ordner wie .crash und .xarchive sind
  • produziert

Wir verwenden Google Crashlytics Absturzprotokolle zu überwachen, das Gefühl ist sehr aktuell und bequem zu bedienen.

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

Alles über fehlende dSYMs Stoff enthält ein Tool, um automatisch Ihr Projekt DSYM hochladen. Das Werkzeug wird durch den / run-Skript ausgeführt, die auf Ihren Run Script Build-Phase während des Onboarding-Prozesses zugegeben wird. Es können bestimmte Situationen geben, aber wenn DSYM Uploads wegen einzigartigen Projektkonfigurationen fehlschlagen oder wenn Sie Bitcode in Ihrer App verwenden. Wenn ein Upload fehlschlägt, Crashlytics nicht in der Lage ist zu symbolicate und Display-Abstürze und ein „Missing DSYM“ Alarm auf Ihrem Stoffe Armaturenbrett angezeigt wird.

Fehlende dSYMs kann manuell nach den unten beschriebenen Schritten hochgeladen werden.

Hinweis: Als Alternative zu dem automatischen Upload-Werkzeug DSYM stellen Gewebe ein Befehlszeilenprogramm (upload-symbol)), die von Hand als Teil des Projektes Erstellungsprozesses konfiguriert werden kann, laufen. Siehe den Upload-Symbole unten im Abschnitt Konfigurationsanweisungen.

...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top