Firebase Crashlytics का इस्तेमाल शुरू करें


इस शुरुआती लेख में, Crashlytics Flutter प्लग इन की मदद से अपने ऐप्लिकेशन में Firebase Crashlytics सेट अप करने का तरीका बताया गया है. इससे आपको Firebase कंसोल में क्रैश की पूरी जानकारी वाली रिपोर्ट मिल सकती हैं.

Crashlytics को सेट अप करने के लिए, कमांड-लाइन टूल और आईडीई, दोनों का इस्तेमाल करना पड़ता है. सेटअप पूरा करने के लिए, आपको अपने Firebase को पहली क्रैश रिपोर्ट भेजी जा सकती है.

शुरू करने से पहले

  1. अगर आपने अब तक ऐसा नहीं किया है, तो अपने Flutter प्रोजेक्ट में Firebase को कॉन्फ़िगर और शुरू करें.

  2. सुझाया गया: क्रैश, गैर-घातक या ANR इवेंट की वजह बनने वाली उपयोगकर्ता की कार्रवाइयों को समझने के लिए, अपने-आप ब्रेडक्रंब लॉग पाने के लिए, आपको अपने Firebase प्रोजेक्ट में Google Analytics चालू करना होगा.

    • अगर आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics नहीं है चालू है, तो आप इनसे Google Analytics को चालू कर सकते हैं: आपके इंटिग्रेशन टैब > प्रोजेक्ट सेटिंग Firebase कंसोल में.

    • अगर आपको नया Firebase प्रोजेक्ट बनाना है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics को चालू करें.

    ध्यान दें कि ब्रेडक्रंब लॉग, सभी Android और Apple प्लैटफ़ॉर्म के लिए उपलब्ध हैं यह सुविधा, Crashlytics पर काम करती है. हालांकि, इसमें WatchOS का इस्तेमाल नहीं किया जा सकता.

पहला चरण: अपने Flutter प्रोजेक्ट में Crashlytics जोड़ना

  1. अपने Flutter प्रोजेक्ट के रूट से, इंस्टॉल करने के लिए नीचे दिया गया कमांड चलाएं Crashlytics के लिए Flutter प्लग इन.

    ब्रेडक्रंब लॉग का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन में Google Analytics के लिए Flutter प्लग इन भी जोड़ें. पक्का करें कि आपके Firebase प्रोजेक्ट में Google Analytics चालू हो.

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:

    flutterfire configure
    

    इस निर्देश को चलाने से यह पक्का हो जाता है कि आपके Flutter ऐप्लिकेशन का Firebase कॉन्फ़िगरेशन अप-टू-डेट हो और Android के लिए, ज़रूरी Crashlytics Gradle जोड़ता है प्लगिन का उपयोग करें.

  3. पूरा हो जाने के बाद, अपना Flutter प्रोजेक्ट फिर से बनाएं:

    flutter run
    
  4. (ज़रूरी नहीं) अगर आपका Flutter प्रोजेक्ट --split-debug-info फ़्लैग (और ज़रूरत पड़ने पर --obfuscate फ़्लैग) का इस्तेमाल करता है, तो आपके ऐप्लिकेशन के लिए पढ़े जा सकने वाले स्टैक ट्रेस दिखाने के लिए, कुछ और चरण पूरे करने होंगे.

    • Apple प्लैटफ़ॉर्म: पक्का करें कि आपका प्रोजेक्ट, सुझाए गए वर्शन कॉन्फ़िगरेशन (Flutter 3.12.0+ और Crashlytics Flutter प्लगिन 3.3.4+), ताकि आपका प्रोजेक्ट Flutter सिंबल (dSYM फ़ाइलें) जनरेट और अपलोड करें Crashlytics.

    • Android: अपलोड करने के लिए, Firebase सीएलआई (v.11.9.0+) का इस्तेमाल करें Flutter डीबग सिंबल. आपको डीबग सिंबल अपलोड करने होंगे, इसके बाद ही, कोड को बदलकर बनाया गया बिल्ड क्रैश होने की शिकायत की जा सकती है.

      अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID: आपका Firebase Android ऐप्लिकेशन आईडी (पैकेज का नाम नहीं)
        Firebase Android ऐप्लिकेशन आईडी का उदाहरण: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO/symbols: वही डायरेक्ट्री ऐप्लिकेशन बनाते समय --split-debug-info फ़्लैग को पास करें

दूसरा चरण: क्रैश हैंडलर कॉन्फ़िगर करना

Flutter में फेंकी जाने वाली सभी गड़बड़ियां अपने-आप कैच की जा सकती हैं FlutterError.onError को इससे ओवरराइड करने के लिए फ़्रेमवर्क FirebaseCrashlytics.instance.recordFlutterFatalError:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

एसिंक्रोनस गड़बड़ियों को पहचानने के लिए, जिन्हें Flutter फ़्रेमवर्क से हैंडल नहीं किया जाता है, इसका इस्तेमाल करें PlatformDispatcher.instance.onError:

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

दूसरी तरह की गड़बड़ियों को मैनेज करने के उदाहरणों के लिए, क्रैश रिपोर्ट को पसंद के मुताबिक बनाना लेख पढ़ें.

तीसरा चरण: सेटअप पूरा करने के लिए, टेस्ट को क्रैश करना

Crashlytics का सेट अप पूरा करने और Crashlytics में शुरुआती डेटा देखने के लिए Firebase कंसोल का डैशबोर्ड, तो आपको जांच अपवाद को बलपूर्वक लागू करना होगा फेंका गया.

  1. अपने ऐप्लिकेशन में ऐसा कोड जोड़ें जिसका इस्तेमाल करके, टेस्ट एक्ससेप्शन को ज़बरदस्ती ट्रिगर किया जा सके.

    अगर आपने कोई गड़बड़ी हैंडलर जोड़ा है, जो टॉप-लेवल Zone पर FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) को कॉल करता है, तो अपने ऐप्लिकेशन में ऐसा बटन जोड़ने के लिए नीचे दिए गए कोड का इस्तेमाल किया जा सकता है जिसे दबाने पर, टेस्ट एक्सप्शन दिखता है:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. अपना ऐप्लिकेशन बनाएं और चलाएं.

  3. अपने ऐप्लिकेशन के पहले उपयोगकर्ता को भेजने के लिए, टेस्ट अपवाद को हर हाल में छोड़ें रिपोर्ट:

    1. अपने टेस्ट डिवाइस या एम्युलेटर से ऐप्लिकेशन खोलें.

    2. अपने ऐप्लिकेशन में, जांच के अपवाद वाले उस बटन को दबाएं जिसे आपने कोड ऊपर दिया गया है.

  4. टेस्ट क्रैश देखने के लिए, Firebase कंसोल के Crashlytics डैशबोर्ड पर जाएं.

    अगर आपने कंसोल को रीफ़्रेश किया है और पांच मिनट बाद भी आपको जांच के क्रैश होने की जानकारी नहीं दिख रही है, तो डीबग लॉगिंग की सुविधा चालू करें. इससे आपको यह पता चलेगा कि आपका ऐप्लिकेशन क्रैश की रिपोर्ट भेज रहा है या नहीं.


अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है बस, हो गया. Crashlytics अब आपके ऐप्लिकेशन के क्रैश होने पर नज़र रख रहा है. साथ ही, Android पर, गड़बड़ियों और ANR की निगरानी भी कर रहा है. YouTube Studio के Crashlytics डैशबोर्ड अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए.

अगले चरण