Absturzberichte für Unity anpassen

Plattform auswählen : iOS+ Android Flutter Unity


Sie können auf ein Problem klicken und einen detaillierten Ereignisbericht im DevOps & Engagement > Crashlytics Dashboard der Firebase Console aufrufen. Sie können diese Berichte anpassen, um besser zu verstehen, was in Ihrer App passiert und welche Umstände zu Ereignissen geführt haben, die an Crashlytics gemeldet wurden.

Ausnahmen melden

Erfasste Ausnahmen melden

Wenn Sie erwartete Ausnahmen haben, können Sie sie vom Crashlytics SDK als nicht schwerwiegende Ereignisse melden lassen. Diese Ereignisse werden auf dem Gerät protokolliert und dann zusammen mit dem nächsten schwerwiegenden Ereignisbericht gesendet oder wenn der Endnutzer das Spiel neu startet.

Sie können Ausnahmen in C# mit der folgenden Methode protokollieren:

Crashlytics.LogException(Exception ex);

Sie können erwartete Ausnahmen in den Try/Catch-Blöcken Ihres Spiels protokollieren:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Nicht erfasste Ausnahmen melden

Bei nicht erfassten Ausnahmen , die nicht zum Absturz Ihres Spiels führen (z. B. nicht erfasste C#-Ausnahmen in der Spiellogik), können Sie sie vom Crashlytics SDK als schwerwiegende Ereignisse melden lassen. Dazu müssen Sie die Crashlytics.ReportUncaughtExceptionsAsFatal Eigenschaft auf true setzen, wenn Sie Crashlytics in Ihrem Unity-Projekt initialisieren .Crashlytics Diese Ereignisse werden in Echtzeit an Crashlytics gemeldet, ohne dass der Endnutzer das Spiel neu starten muss.

Wenn Sie diese nicht erfassten Ausnahmen als schwerwiegende Ereignisse melden, werden sie bei den Statistiken zu Nutzern ohne Abstürze und bei Geschwindigkeitswarnungen berücksichtigt.

Native Abstürze werden immer als schwerwiegende Ereignisse gemeldet. Diese Ereignisse werden auf dem Gerät protokolliert und dann gesendet, wenn der Endnutzer das Spiel neu startet.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

GWP-ASan-Berichte einbeziehen, um Probleme mit Speicherschäden zu beheben

Bei Android-Apps, die IL2CPP verwenden, kann Crashlytics Ihnen helfen, Abstürze zu beheben, die durch native Speicherfehler verursacht werden, indem GWP-ASan-Berichte erfasst werden. Diese speicherbezogenen Fehler können mit Speicherschäden in Ihrer App zusammenhängen, die die Hauptursache für Sicherheitslücken in Apps sind.

Im DevOps & Engagement > Crashlytics Dashboard der Firebase Konsole können Sie mit diesen Daten Folgendes tun:

  • Sie können diese Daten auf dem neuen Tab „Speicher-Stacktraces“ aufrufen, wenn Sie auf die Details eines Problems klicken.

  • Mit dem neuen Signal und Filter „GWP-ASan-Bericht“ können Sie schnell alle Probleme mit diesen Daten aufrufen.

Sie können GWP-ASan-Speicherberichte abrufen, wenn Ihre App das aktuelle Crashlytics SDK für Unity (Version 10.7.0 und höher) verwendet und GWP-ASan explizit aktiviert ist (dazu müssen Sie Ihr Android-App-Manifest ändern). Wenn Ihre App C++-Code enthält, können Sie Ihre GWP-ASan-Einrichtung mit dem Beispiel für nativen Code in der Android-Dokumentation testen.

Benutzerdefinierte Schlüssel hinzufügen

Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App abrufen, der zu einem Absturz führte. Sie können Ihren Absturzberichten beliebige Schlüssel/Wert-Paare zuordnen und dann die benutzerdefinierten Schlüssel verwenden, um im DevOps & Engagement > Crashlytics Dashboard der Firebase Konsole nach Absturzberichten zu suchen und sie zu filtern.

  • Sie können nach Problemen suchen, die einem benutzerdefinierten Schlüssel entsprechen.

  • Wenn Sie ein bestimmtes Problem in der Console untersuchen, können Sie die zugehörigen benutzerdefinierten Schlüssel für jedes Ereignis auf dem Untertab Schlüssel aufrufen und die Ereignisse sogar nach benutzerdefinierten Schlüsseln filtern. Verwenden Sie dazu das Menü Filter oben auf der Seite.

Wenn die Funktion mehrmals aufgerufen wird, werden die Werte für vorhandene Schlüssel aktualisiert. Beim Aufzeichnen eines Absturzes wird nur der aktuelle Wert erfasst.

Crashlytics.SetCustomKey(string key, string value);

Benutzerdefinierte Logmeldungen hinzufügen

Um mehr Kontext zu den Ereignissen zu erhalten, die zu einem Absturz geführt haben, können Sie Ihrer App benutzerdefinierte Crashlytics Logs hinzufügen. Crashlytics verknüpft die Logs mit Ihren Absturzdaten und zeigt sie auf dem Tab Logs an, wenn Sie die Details eines Problems aufrufen. Alle Probleme finden Sie im Dashboard DevOps & Engagement > Crashlytics dashboard der Firebase console.

Crashlytics.Log(string message);

Nutzer-IDs festlegen

Sie können eine ID-Nummer, ein Token oder einen gehashten Wert verwenden, um den Endnutzer Ihrer Anwendung eindeutig zu identifizieren, ohne seine personenbezogenen Daten preiszugeben oder zu übertragen. Sie können den Wert auch löschen, indem Sie ihn auf einen leeren String setzen. Dieser Wert wird angezeigt, wenn Sie einen bestimmten Absturz im DevOps & Engagement > Crashlytics Dashboard der Firebase Konsole aufrufen.

Crashlytics.SetUserId(string identifier);

Navigationspfadlogs abrufen

Navigationspfadlogs geben Ihnen einen besseren Einblick in die Interaktionen eines Nutzers mit Ihrer App, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben. Diese Logs können hilfreich sein, wenn Sie versuchen, ein Problem zu reproduzieren und zu beheben.

Navigationspfadlogs werden von Google Analytics unterstützt. Um sie zu erhalten, müssen Sie Google Analytics für Ihr Firebase-Projekt aktivieren und das Firebase SDK für Google Analytics zu Ihrer App hinzufügen. Sobald diese Voraussetzungen erfüllt sind, werden Navigationspfadlogs automatisch in die Daten eines Ereignisses auf dem Tab **Logs** aufgenommen, wenn Sie die Details eines Problems aufrufen. Alle Probleme finden Sie im Dashboard **DevOps & Engagement** > **Crashlytics** der Firebase Console.Google AnalyticsCrashlyticsFirebase

Das Analytics SDK protokolliert automatisch das Ereignis screen_view . Dadurch können in den Navigationspfadlogs eine Liste der Bildschirme angezeigt werden, die vor dem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis aufgerufen wurden. Ein screen_view-Navigationspfadlog enthält den Parameter firebase_screen_class.

Navigationspfadlogs werden auch mit allen benutzerdefinierten Ereignissen gefüllt, die Sie manuell in der Sitzung des Nutzers protokollieren, einschließlich der Parameterdaten des Ereignisses. Diese Daten können eine Reihe von Nutzeraktionen zeigen, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben.

Sie können die Erhebung und Verwendung von Google Analytics Daten steuern, einschließlich der Daten, die in Navigationspfadprotokollen verwendet werden.

Opt-in-Berichte aktivieren

Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App. Sie können Nutzern mehr Kontrolle über die von ihnen gesendeten Daten geben, indem Sie ihnen die Möglichkeit geben, sich für die Berichterstellung von Abstürzen zu entscheiden.

Wenn Sie die automatische Erhebung nur für ausgewählte Nutzer deaktivieren möchten, rufen Sie die Crashlytics Datenerhebungsüberschreibung zur Laufzeit auf. Der Überschreibungswert bleibt bei allen nachfolgenden Starts Ihrer App bestehen, sodass Crashlytics automatisch Berichte für diesen Nutzer erheben kann.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Wenn der Nutzer die Datenerhebung später deaktiviert, können Sie false als Überschreibungswert übergeben. Dieser Wert wird beim nächsten Start der App angewendet und bleibt bei allen nachfolgenden Starts für diesen Nutzer bestehen.

Daten zu Absturzinformationen verwalten

Crash Insights hilft Ihnen, Probleme zu beheben, indem Ihre anonymisierten Stacktraces mit Traces aus anderen Firebase-Apps verglichen werden. So erfahren Sie, ob Ihr Problem Teil eines größeren Trends ist. Für viele Probleme bietet Crash Insights sogar Ressourcen, die Ihnen bei der Fehlerbehebung helfen.

Crash Insights verwendet aggregierte Absturzdaten, um häufige Stabilitätstrends zu ermitteln. Wenn Sie die Daten Ihrer App nicht freigeben möchten, können Sie Crash Insights im Menü Crash Insights oben in der Problemliste im DevOps & Engagement > Crashlytics Dashboard der Firebase Konsole deaktivieren.

Nächste Schritte