Crashlytics डैशबोर्ड (Android) में, पढ़ने लायक क्रैश रिपोर्ट पाना

प्लैटफ़ॉर्म चुनें: iOS+ Android Flutter Unity


Crashlytics Gradle प्लग इन, कोड को छिपाने पर अपने-आप उसका पता लगा सकता है. जब आपका बिल्ड कोई मैपिंग फ़ाइल जनरेट करता है, तो प्लगिन उसे अपलोड कर देता है. इससे Crashlytics सर्वर, आपके ऐप्लिकेशन के स्टैक ट्रेस को साफ़ तौर पर और आसानी से पढ़े जा सकने वाले कोड के तौर पर रेंडर करने के लिए, उस फ़ाइल का इस्तेमाल कर सकते हैं.

R8, ProGuard, और DexGuard का इस्तेमाल करते समय ज़रूरी कॉन्फ़िगरेशन

Crashlytics, ProGuard के साथ काम करने वाली किसी भी मैपिंग फ़ाइल की मदद से, कोड को डीऑब्फ़स्केट कर सकता है. साथ ही, इसकी जांच ProGuard, R8, और DexGuard के साथ की गई है.

अगर आपका ऐप्लिकेशन, Android Gradle 4.2.0+ के साथ-साथ, कोड को छिपाने की सुविधा चालू करके R8 का इस्तेमाल करता है, तो Crashlytics, क्रैश की ऐसी रिपोर्ट जनरेट करेगा जिन्हें पढ़ा जा सकता है. ध्यान दें कि Crashlytics ने Kotlin और R8, दोनों का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, हाल ही में सहायता को बेहतर बनाया है. इससे समस्याओं को लेबल करने में कुछ गड़बड़ियां हो सकती हैं.

अगर आपका ऐप्लिकेशन ProGuard कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करता है, तो आपको वह जानकारी सेव करनी होगी जो Crashlytics को क्रैश रिपोर्ट बनाने के लिए ज़रूरी है. इसके लिए, अपनी ProGuard या DexGuard कॉन्फ़िगरेशन फ़ाइल में ये लाइनें जोड़ें:

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

DexGuard से जुड़े सवालों या समस्याओं के बारे में मदद पाने के लिए, सीधे Guardsquare की सहायता टीम से संपर्क करें. ProGuard से जुड़ी मदद पाने के लिए, Guardsquare कम्यूनिटी फ़ोरम पर जाएं. यहां आपको किसी विशेषज्ञ से मदद मिलेगी.

बिल्ड के ऐसे वैरिएंट रखना जो कोड को छिपाते हैं

Crashlytics Gradle प्लगिन को, कोड को छिपाने की सुविधा का इस्तेमाल करने वाले वैरिएंट के लिए मैपिंग फ़ाइल अपलोड करने से रोकने के लिए, firebaseCrashlytics.mappingFileUploadEnabled Gradle एक्सटेंशन प्रॉपर्टी को false पर सेट करें. ऐसा अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में करें. इससे, कोड को छिपाने की सुविधा का इस्तेमाल करने वाले बिल्ड के लिए, बिल्ड के समय को कम किया जा सकता है. हालांकि, ध्यान दें कि नतीजे के तौर पर मिलने वाले स्टैक ट्रेस, Firebase कंसोल के Crashlytics पेज पर छिपे हुए दिखेंगे.

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