Lesbare Absturzberichte im Crashlytics-Dashboard abrufen (Android)

Plattform auswählen : iOS+ Android Flutter Unity


Das Crashlytics Gradle-Plug-in kann automatisch erkennen, wenn Sie Ihren Code verschleiern. Wenn bei Ihrem Build eine Zuordnungsdatei generiert wird, lädt das Plug-in sie hoch, damit die Crashlytics Server die Datei verwenden können, um die Stacktraces Ihrer App als nicht verschleierten und für Menschen lesbaren Code darzustellen.

Erforderliche Konfiguration bei Verwendung von R8, ProGuard und DexGuard

Crashlytics kann mit jeder ProGuard-kompatiblen Zuordnungsdatei die Verschleierung aufheben. Außerdem wurde es mit ProGuard, R8 und DexGuard getestet.

Wenn Ihre App R8 mit aktivierter Verschleierung und Android Gradle 4.2.0 oder höher verwendet, Crashlytics erstellt lesbare Absturzberichte. Beachten Sie, dass Crashlytics vor Kurzem die Unterstützung für Apps verbessert hat, die sowohl Kotlin als auch R8 verwenden. Dies kann zu einer unerwarteten Kennzeichnung von Problemen führen.

Wenn Ihre App die ProGuard-Konfigurationsdatei verwendet, müssen Sie die Informationen Crashlytics zum Erstellen lesbarer Absturzberichte beibehalten. Fügen Sie dazu die folgenden Zeilen der ProGuard- oder DexGuard-Konfigurationsdatei hinzu:

-keepattributes SourceFile,LineNumberTable        # Keep file names and line numbers.
-keep public class * extends java.lang.Exception  # Optional: Keep custom exceptions.

Wenn Sie Fragen zu DexGuard haben oder Hilfe benötigen, wenden Sie sich direkt an das Guardsquare-Supportteam. Hilfe zu ProGuard erhalten Sie in den Guardsquare-Community-Foren.

Verschleierte Build-Varianten beibehalten

Wenn Sie verhindern möchten, dass das Crashlytics Gradle-Plug-in die Zuordnungsdatei für Varianten hochlädt, die Verschleierung verwenden, legen Sie die firebaseCrashlytics.mappingFileUploadEnabled Gradle-Erweiterungseigenschaft auf false in der Gradle-Datei Ihres Moduls (auf App-Ebene) fest (in der Regel <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle). Dadurch können die Build-Zeiten für verschleierte Builds verkürzt werden. Beachten Sie jedoch, dass die resultierenden Stacktraces auf der Crashlytics-Seite der Firebase-Konsole verschleiert angezeigt werden.

Kotlin

import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension

// ...

android {

// To enable Crashlytics mapping file upload for specific build types:
buildTypes {
  getByName("debug") {
    minifyEnabled = true
    configure<CrashlyticsExtension> {
      mappingFileUploadEnabled = false
    }
  }
}

...

// To enable Crashlytics mapping file upload for specific product flavors:
flavorDimensions += "environment"
productFlavors {
  create("staging") {
    dimension = "environment"
    ...
    configure<CrashlyticsExtension> {
      mappingFileUploadEnabled = false
    }
  }
  create("prod") {
    dimension = "environment"
    ...
    configure<CrashlyticsExtension> {
      mappingFileUploadEnabled = true
    }
  }
}
}

Groovy

android {

// To enable Crashlytics mapping file upload for specific build types:
buildTypes {
  debug {
    minifyEnabled true
    firebaseCrashlytics {
      mappingFileUploadEnabled false
    }
  }
}

...

// To enable Crashlytics mapping file upload for specific product flavors:
flavorDimensions "environment"
productFlavors {
  staging {
    dimension "environment"
    ...
    firebaseCrashlytics {
      mappingFileUploadEnabled false
    }
  }
  prod {
    dimension "environment"
    ...
    firebaseCrashlytics {
      mappingFileUploadEnabled true
    }
  }
}
}