Crashlytics Gradle प्लग इन v3 पर अपग्रेड करें

Crashlytics Gradle प्लग इन का नया रिलीज़, एक मेजर वर्शन (v3.0.0) है. यह Gradle और Android Gradle प्लग इन के पुराने वर्शन के साथ काम नहीं करता. इससे SDK टूल को आधुनिक बनाया जाता है. इसके अलावा, इस रिलीज़ में किए गए बदलावों से AGP v8.1 और उसके बाद के वर्शन से जुड़ी समस्याएं हल हो जाती हैं. साथ ही, नेटिव ऐप्लिकेशन और पसंद के मुताबिक बनाए गए बिल्ड के लिए सहायता भी बेहतर हो जाती है.

ज़रूरी शर्तें

Crashlytics Gradle प्लग इन के वर्शन 3 के लिए, ये ज़रूरी शर्तें हैं:

  • Android Gradle प्लग इन 8.1 और इसके बाद के वर्शन
    Android Studio के सबसे नए वर्शन पर, Android Gradle प्लग इन अपग्रेड असिस्टेंट का इस्तेमाल करके, इस प्लग इन को अपग्रेड करें.

  • Firebase का google-services Gradle प्लग इन 4.4.1+
    इस प्लग इन को अपग्रेड करने के लिए, अपने प्रोजेक्ट की Gradle बिल्ड फ़ाइल में सबसे नया वर्शन डालें. जैसे:

KotlinGroovy
plugins {
  id("com.android.application") version "8.1.4" apply false
  id("com.google.gms.google-services") version "4.4.2" apply false
  ...
}
plugins {
  id 'com.android.application' version '8.1.4' apply false
  id 'com.google.gms.google-services' version '4.4.2' apply false
  ...
}

Crashlytics एक्सटेंशन में हुए बदलाव

Crashlytics Gradle प्लग इन के वर्शन 3 के साथ, Crashlytics एक्सटेंशन में ये बदलाव किए गए हैं:

  • defaultConfig Android ब्लॉक से एक्सटेंशन हटा दिया गया. इसके बजाय, आपको हर वैरिएंट को कॉन्फ़िगर करना चाहिए.

  • अब इस्तेमाल में नहीं होने वाले फ़ील्ड mappingFile को हटा दिया गया है. इसके बजाय, मर्ज की गई मैपिंग फ़ाइल अब अपने-आप उपलब्ध कराई जाती है.

  • अब इस्तेमाल में नहीं होने वाले फ़ील्ड strippedNativeLibsDir को हटा दिया गया है. इसके बजाय, आपको सभी नेटिव लाइब्रेरी के लिए unstrippedNativeLibsDir का इस्तेमाल करना चाहिए.

  • unstrippedNativeLibsDir फ़ील्ड को 'कुल' के तौर पर सेट किया गया.

      buildTypes {
        release {
          configure<CrashlyticsExtension> {
            nativeSymbolUploadEnabled = true
            unstrippedNativeLibsDir = file("MY/NATIVE/LIBS")
          }
        }
        productFlavors {
          flavorDimensions += "feature"
          create("basic") {
            dimension = "feature"
            // ...
          }
          create("featureX") {
            dimension = "feature"
            configure<CrashlyticsExtension> {
              unstrippedNativeLibsDir = file("MY/FEATURE_X/LIBS")
            }
          }
        }
      }
      

    uploadCrashlyticsSymbolFilesBasicRelease टास्क सिर्फ़ MY/NATIVE/LIBS में सिंबल अपलोड करेगा, जबकि uploadCrashlyticsSymbolFilesFeatureXRelease टास्क, MY/NATIVE/LIBS और MY/FEATURE_X/LIBS, दोनों में सिंबल अपलोड करेगा.

  • क्लोज़र फ़ील्ड symbolGenerator को दो नए टॉप लेवल फ़ील्ड से बदल दिया गया है:

    • symbolGeneratorType, "breakpad" (डिफ़ॉल्ट) या "csym" की स्ट्रिंग.
    • breakpadBinary, स्थानीय dump_syms बाइनरी बदलाव की फ़ाइल.

एक्सटेंशन को अपग्रेड करने का उदाहरण

KotlinGroovy
इससे पहले
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGenerator(
                closureOf<SymbolGenerator> {
                  symbolGeneratorType = "breakpad"
                  breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              )
            }
          }
        }
      
अब v3 में उपलब्ध है
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGeneratorType = "breakpad"
              breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }
      
इससे पहले
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGenerator {
                breakpad {
                  binary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              }
            }
          }
        }
      
अब v3 में उपलब्ध है
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGeneratorType "breakpad"
              breakpadBinary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }