Crashlytics kontrol panelinden okunabilir kilitlenme raporları alın


Crashlytics Gradle eklentisi, kodunuzu ne zaman kararttığınızı otomatik olarak algılayabilir. Derlemeniz bir eşleme dosyası oluşturduğunda eklenti bu dosyayı yükler. Böylece Crashlytics sunucuları, uygulamanızın yığın izlemelerini kod karartması uygulanmamış ve insanlar tarafından okunabilir kod olarak oluşturmak için dosyayı kullanabilir.

R8, ProGuard ve DexGuard kullanılırken gerekli yapılandırma

Crashlytics, ProGuard uyumlu herhangi bir eşleme dosyasıyla kod karartmayı kaldırabilir ve ayrıca ProGuard, R8 ve DexGuard ile test edilmiştir.

Uygulamanız, Android Gradle 4.2.0 ve sonraki sürümlerle birlikte karartma özelliği etkinleştirilmiş R8 kullanıyorsa Crashlytics okunabilir kilitlenme raporları oluşturur. CrashlyticsKısa süre önce hem Kotlin hem de R8 kullanan uygulamalar için desteği iyileştirdiğini, bu durumun bazı beklenmedik sorun etiketlemelerine yol açabileceğini unutmayın.

Uygulamanız ProGuard yapılandırma dosyasını kullanıyorsa Crashlytics'ün okunabilir kilitlenme raporları oluşturmak için ihtiyaç duyduğu bilgileri korumanız gerekir. Bunu yapmak için ProGuard veya DexGuard yapılandırma dosyanıza aşağıdaki satırları ekleyin:

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

DexGuard ile ilgili sorularınız veya sorunlarınız için doğrudan Guardsquare destek ekibiyle iletişime geçin. ProGuard ile ilgili yardım almak için Guardsquare Topluluk forumlarını ziyaret ederek bir uzmandan yardım alabilirsiniz.

Kodu karartılmış derleme varyantlarını tutma

Crashlytics Gradle eklentisinin, karartma kullanan varyantların eşleme dosyasını yüklemesini önlemek için modül (uygulama düzeyi) Gradle dosyanızdaki (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) firebaseCrashlytics.mappingFileUploadEnabled Gradle uzantı mülkünü false olarak ayarlayın. Bu, karartılmış derlemelerin derleme sürelerini kısaltmaya yardımcı olabilir ancak ortaya çıkan yığın izlemelerinin Firebase konsolunun Crashlytics sayfasında karartılmış olarak görüneceğini unutmayın.

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