Verwenden Sie LogBrew Swift 0.1.6 oder neuer. Verwenden Sie für das
Hochladen von Debug-Artefakten die native LogBrew-CLI 0.1.24 oder neuer.
Grenzen der Erfassung planen
Prüfen Sie, wann Ihre App jede Fehlerart per Replay senden kann.
Legen Sie den Release-Wert vor dem Build fest. Er muss App-Version und Build
eindeutig bezeichnen. Verwenden Sie denselben Wert im SDK, beim Hochladen
des dSYM und im Issue-Filter.
Hängen Sie keine Nutzerdaten, Anfrage-Bodys oder Header an die
Absturz-Metadaten an.
Absturz-Produkt hinzufügen
Richten Sie zuerst die SDK-Telemetrie für Ihre App ein. Replay nutzt diesenclient und diesen transport.
Fügen Sie das öffentliche SDK über den Swift Package Manager hinzu.
LogBrew hinzu, um Telemetrie zu senden. Fügen Sie
LogBrewCrash nur hinzu, wenn die App die Erfassung nativer Abstürze oder
Hänger ausdrücklich aktiviert.
Die Erfassung unterstützt iOS 15 oder neuer. Behalten Sie genau ein
Erfassungsobjekt, das der App gehört, denn native Handler für fatale Fehler
gelten für den ganzen Prozess.
Eine exakte Identität konfigurieren
Verwenden Sie dasselbe Projekt, dasselbe Release, dieselbe Umgebung und denselben Dienst in der Laufzeit-Einrichtung und beim Hochladen der Artefakte. LogBrew leitet diese Werte nicht ab und ersetzt sie nicht.NativeCrashConfiguration hat zwei optionale Grenzen:
Ein Wert außerhalb seines Bereichs lässt die Konfiguration
crash_invalid_configuration auslösen.
Erfassung von Hängern aktivieren
Die Erfassung von Hängern ist aus, wennwatchdog nil ist. Um sie zu
aktivieren, ersetzen Sie die obige Deklaration von watchdog, bevor Sie
install() aufrufen:
artifactIdentity. Ohne diesen Wert löst die
Konfiguration crash_invalid_configuration aus.
Behalten Sie ein crashCapture-Objekt für die gesamte Laufzeit des
Prozesses. Ein zweites Erfassungsobjekt kann sich nicht installieren. Sein
Aufruf von install() löst crash_capture_owned aus. Um den
Schwellenwert zu ändern, verwenden Sie den neuen Wert beim nächsten
App-Start.
Ein überstandener Hänger wird mit crash.handled auf true per Replay
gesendet. Ein laufender Hänger, den ein Beenden des Prozesses hinterlassen
hat, wird mit crash.handled auf false gesendet.
Beide Formen enthalten numerische Metadaten in durationMs. Sie behalten
dieselbe Artefakt-Identität wie die Frames fataler Abstürze.
Der Watchdog pausiert, solange die App inaktiv ist oder unter einem Debugger
läuft. Bei starker thermischer Belastung unterdrückt er die Erfassung
ebenfalls.
Ein kurzer Schwellenwert kann normale Arbeit auf dem Main-Thread als Hänger
melden. Testen Sie den Schwellenwert mit der Build-Konfiguration, die Sie
ausliefern. Der behandelte Zustand beschreibt die Erholung. Er markiert das
Issue nicht als gelöst. Ein behandelter Hänger hat die Oberfläche trotzdem
blockiert. Prüfen Sie ihn also auch.
Replay nach dem Start
Senden Sie ausstehende Berichte nach der Installation der Erfassung per Replay über Ihren SDK-Client.maxReplayBytes sind. Prüfen Sie alle drei Zahlen. Eine Null bei den
ausstehenden Berichten allein beweist keine Zustellung.
Aktivieren Sie vor dem Replay die dauerhafte Zustellung, wenn eine
fehlgeschlagene Anfrage einen weiteren Neustart überstehen muss. Rufen Sie
purge() nicht bei einer gewöhnlichen Erholung von Netzwerk- oder
Authentifizierungsfehlern auf.
Passendes dSYM hochladen
Archivieren Sie die App mit aktivierten Debug-Informationen. Behalten Sie das dSYM genau des Builds, den die Nutzer ausführen. Prüfen Sie seine Image-UUIDs.--expect-image-uuid für jede benötigte Architektur. Der
Befehl schlägt fehl, wenn die gefundenen UUIDs von den erwarteten abweichen.
Prüfen Sie den Kontozugriff. Führen Sie dann denselben Befehl ohne
--dry-run aus.
status zeigt das Ergebnis:
Eine Build-Maschine kann statt mit Kontozugriff mit einem
Projekt-Artefaktschlüssel in
LOGBREW_TOKEN hochladen. Erstellen Sie den
Schlüssel wie unter
Artefaktschlüssel erstellen
beschrieben. Dieser Upload meldet uploaded. Verifizieren Sie jede
Identität später mit Kontozugriff:
status: "found" bestätigt das Artefakt. status: "missing" heißt, dass
LogBrew für diese Identität kein Artefakt hat.
Die Zuordnung prüft die Image-UUID und die vollständige Artefakt-Identität,
nicht den Namen der Quelldatei. Ein neuer Build desselben Quellcodes kann
andere UUIDs haben. Laden Sie genau das dSYM-Bundle hoch, nicht ein ganzes
Build-Verzeichnis.
Gehostetes Ergebnis prüfen
Filtern Sie die Issue-Liste mit demselben Laufzeitbereich. Dieses Beispiel wählt Issues mitunresolved aus. Ein gelöstes oder archiviertes Issue
erscheint nicht.
symbolication-Objekt hinzu. Dieses
Beispiel zeigt ausgewählte Felder eines Issues mit einem zugeordneten Frame,
nicht die vollständige Antwort.
Absturz-Belege lesen
Jeder Frame hat einen eigenenstatus. Das Feld symbolication.status
verwendet dieselben Werte:
Notieren Sie einen nicht zugeordneten Frame als nicht zugeordnet. Melden Sie
ihn nicht als leeren Stack.
LogBrew ordnet Frames zu, wenn Sie das Issue lesen. Ein später
hochgeladenes dSYM kann Frames eines früheren Ereignisses zuordnen. Es kann
keine Frames hinzufügen, die das Ereignis nicht erfasst hat.
Ein Anwendungsframe grenzt die Codesuche ein, beweist aber nicht die
Ursache. Für vorherige Schritte, die Ausnahmekette und Trace-Belege lesen
Sie die Untersuchung des Issues:
source: "symbolicated" aus einem
hochgeladenen Artefakt. Ein Frame mit source: "captured" ist die Stelle,
die die App gesendet hat. Die Antwortfelder finden Sie unter
Issue untersuchen.
Behalten Sie bei jedem Lesen den vollständigen Bereich aus Projekt, Release,
Umgebung und Dienst bei. Weiten Sie eine fehlgeschlagene Suche nicht auf
andere Projekte aus.
Einrichtung in Produktion prüfen
Verwenden Sie im bereitgestellten Build einen freigegebenen Testfehler. Lösen Sie ihn nie mit einer Kundenaktion aus. Prüfen Sie die Punkte der Reihe nach und halten Sie beim ersten Fehler an:- Die Laufzeit-Identität passt zur Identität des hochgeladenen Artefakts.
- Ein späterer Start sendet per Replay ein bestätigtes Ereignis, mit null verworfenen und null ausstehenden Berichten.
- Die eingegrenzte Issue-Liste gibt das Test-Issue mit dem erwarteten behandelten Zustand zurück.
- Der erwartete Anwendungsframe wird zugeordnet.
- Ein späterer fehlerfreier Start fügt kein weiteres Vorkommen hinzu.
Sicher wiederherstellen
Für allgemeine Issue-Untersuchungen nutzen Sie
Issue mit der API untersuchen.
