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