Crashlytics kontrol panelinden okunabilir kilitlenme raporları alın


Crashlytics Gradle eklentisi, kodunuzu kararttığınızda bunu 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 izlerini karartılmamış ve okunabilir kod olarak oluşturmak için dosyayı kullanabilir.

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

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

Uygulamanızda karartma etkin durumdayken Android Gradle 4.2.0+ ile birlikte R8 kullanılıyorsa Crashlytics, okunabilir kilitlenme raporları oluşturur. Crashlytics Kotlin ve R8'i birlikte kullanan uygulamalar için destek yakın zamanda iyileştirildi. Bu durum, bazı beklenmedik sorun etiketlemelerine yol açabilir.

Uygulamanız ProGuard yapılandırma dosyasını kullanıyorsa okunabilir kilitlenme raporları oluşturmak için gereken bilgileri korumanız gerekir.Crashlytics Aşağıdaki satırları ProGuard veya DexGuard yapılandırma dosyanıza ekleyerek bunu yapabilirsiniz:

-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 için Guardsquare Topluluk Forumları'nı ziyaret ederek bir uzmandan destek alın.

Karartılmış derleme varyantlarını saklama

Crashlytics Gradle eklentisinin karartma kullanan varyantlar için eşleme dosyasını yüklemesini önlemek amacıyla firebaseCrashlytics.mappingFileUploadEnabled Gradle uzantısı özelliğini modül (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) false olarak ayarlayın. Bu, karartılmış derlemelerin derleme sürelerini hızlandırmaya yardımcı olabilir ancak sonuçtaki yığın izlerinin 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
    }
  }
}
}