| Platform seçin: | iOS+ Android Flutter Unity |
Crashlytics Gradle eklentisi, kodunuzu ne zaman kod karartma işlemine tabi tuttuğunuzu 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 gizlenmemiş ve okunabilir kod olarak oluşturmak için bu dosyayı kullanabilir.
R8, ProGuard ve DexGuard kullanılırken gerekli yapılandırma
Crashlytics, ProGuard ile uyumlu herhangi bir eşleme dosyasıyla kod gösterme yapabilir ve ayrıca ProGuard, R8 ve DexGuard ile test edilmiştir.
Uygulamanız, Android Gradle 4.2.0 ve sonraki sürümlerle birlikte kod karartma özelliği etkinleştirilmiş R8 kullanıyorsa Crashlytics, okunabilir kilitlenme raporları oluşturur. Crashlytics, hem Kotlin hem de R8 kullanan uygulamalar için desteği yakın zamanda iyileştirdi. Bu durum, beklenmedik sorun etiketlemelerine yol açabilir.
Uygulamanız ProGuard yapılandırma dosyasını kullanıyorsa Crashlytics uygulamasının okunabilir kilitlenme raporları oluşturmak için ihtiyaç duyduğu bilgileri saklamanı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 destek alabilirsiniz.
Karartılmış derleme değişkenlerini koruma
Crashlytics Gradle eklentisinin, kod karartma kullanan varyantlar için eşleme dosyasını yüklemesini önlemek istiyorsanız modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) firebaseCrashlytics.mappingFileUploadEnabled Gradle uzantı özelliğini false olarak ayarlayın. Bu, kod karartma uygulanan derlemelerin derleme sürelerini hızlandırmaya yardımcı olabilir ancak sonuçta elde edilen yığın izlemelerin Firebase Console'un Crashlytics sayfasında kod karartma uygulanmış 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 } } } }