| 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 } } } }