| प्लैटफ़ॉर्म चुनें: | iOS+ Android Android NDK Flutter Unity |
इस गाइड में, Flutter ऐप्लिकेशन में Firebase Crashlytics का इस्तेमाल शुरू करने का तरीका बताया गया है.
अपने ऐप्लिकेशन में Crashlytics Flutter प्लग इन सेट अप करने के बाद, आपको Firebase कंसोल में क्रैश की पूरी जानकारी वाली रिपोर्ट मिल सकती हैं.
Crashlytics को सेट अप करने के लिए, कमांड-लाइन टूल और आईडीई, दोनों का इस्तेमाल करना ज़रूरी है. सेटअप पूरा करने के लिए, आपको टेस्ट एक्सेप्शन को ज़बरदस्ती थ्रो करना होगा, ताकि Firebase को आपकी पहली क्रैश रिपोर्ट भेजी जा सके.
शुरू करने से पहले
अगर आपने पहले से ही ऐसा नहीं किया है, तो अपने Flutter प्रोजेक्ट में Firebase को कॉन्फ़िगर और शुरू करें.
सुझाव: क्रैश, नॉन-फ़ेटल या एएनआर इवेंट से पहले उपयोगकर्ता की कार्रवाइयों को समझने के लिए, ब्रेडक्रंब लॉग अपने-आप जनरेट होने की सुविधा चालू करें. इसके लिए, आपको अपने Firebase प्रोजेक्ट में Google Analytics को चालू करना होगा.
अगर आपको नया Firebase प्रोजेक्ट बनाना है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics को चालू करें.
अगर किसी ऐसे मौजूदा Firebase प्रोजेक्ट का इस्तेमाल किया जा रहा है जिसमें Google Analytics चालू नहीं है, तो उसे चालू करने के लिए Firebase कंसोल के
सेटिंग > इंटिग्रेशन पेज पर जाएं.
ध्यान दें कि ब्रेडक्रंब लॉग, Crashlytics के साथ काम करने वाले सभी Android और Apple प्लैटफ़ॉर्म के लिए उपलब्ध हैं. हालांकि, ये watchOS के लिए उपलब्ध नहीं हैं.
पहला चरण: अपने Flutter प्रोजेक्ट में Crashlytics जोड़ना
Crashlytics के लिए Flutter प्लगिन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट के रूट से यह कमांड चलाएं.
ब्रेडक्रंब लॉग का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन में Google Analytics के लिए Flutter प्लग इन भी जोड़ें. पक्का करें कि आपके Firebase प्रोजेक्ट में Google Analytics चालू हो.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsअपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:
flutterfire configureइस निर्देश को चलाने से यह पक्का होता है कि आपके Flutter ऐप्लिकेशन का Firebase कॉन्फ़िगरेशन अप-टू-डेट है. साथ ही, Android के लिए, आपके ऐप्लिकेशन में ज़रूरी Crashlytics Gradle प्लग इन जुड़ जाता है.
इसके बाद, अपने Flutter प्रोजेक्ट को फिर से बनाएं:
flutter run(ज़रूरी नहीं) अगर आपका Flutter प्रोजेक्ट,
--split-debug-infoफ़्लैग का इस्तेमाल करता है (और, ज़रूरी नहीं है कि--obfuscateफ़्लैग का भी इस्तेमाल करे), तो आपके ऐप्लिकेशन के लिए, आसानी से पढ़े जा सकने वाले स्टैक ट्रेस दिखाने के लिए, कुछ और चरणों को पूरा करना ज़रूरी है.Apple प्लैटफ़ॉर्म: पक्का करें कि आपका प्रोजेक्ट, सुझाए गए वर्शन कॉन्फ़िगरेशन (Flutter 3.12.0+ और Crashlytics Flutter प्लग इन 3.3.4+) का इस्तेमाल कर रहा हो. इससे आपका प्रोजेक्ट, Flutter सिंबल (dSYM फ़ाइलें) अपने-आप जनरेट करके, Crashlytics पर अपलोड कर पाएगा.
Android: Flutter के डीबग सिंबल अपलोड करने के लिए, Firebase सीएलआई (v.11.9.0+) का इस्तेमाल करें. ऑब्फ़स्केटेड कोड बिल्ड से क्रैश की शिकायत करने से पहले, आपको डीबग सिंबल अपलोड करने होंगे.
अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: आपके Firebase Android ऐप्लिकेशन का आईडी (पैकेज का नाम नहीं)
Firebase Android ऐप्लिकेशन के आईडी का उदाहरण:1:567383003300:android:17104a2ced0c9b9bPATH/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 का सेट अप पूरा करने और Firebase कंसोल के Crashlytics डैशबोर्ड में शुरुआती डेटा देखने के लिए, आपको टेस्ट एक्सेप्शन को थ्रो करना होगा.
अपने ऐप्लिकेशन में ऐसा कोड जोड़ें जिसका इस्तेमाल करके, टेस्ट एक्सेप्शन को ज़बरदस्ती थ्रो किया जा सके.
अगर आपने टॉप-लेवल
ZoneकोFirebaseCrashlytics.instance.recordError(error, stack, fatal: true)कॉल करने वाला कोई गड़बड़ी हैंडलर जोड़ा है, तो अपने ऐप्लिकेशन में बटन जोड़ने के लिए इस कोड का इस्तेमाल करें. इस बटन को दबाने पर, टेस्ट एक्सेप्शन थ्रो होता है:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),अपना ऐप्लिकेशन बनाएं और चलाएं.
अपने ऐप्लिकेशन की पहली रिपोर्ट भेजने के लिए, टेस्ट एक्सेप्शन को ज़बरदस्ती थ्रो करें:
अपने टेस्ट डिवाइस या एम्युलेटर से अपना ऐप्लिकेशन खोलें.
अपने ऐप्लिकेशन में, टेस्ट एक्सेप्शन बटन दबाएं. आपने इस बटन को ऊपर दिए गए कोड का इस्तेमाल करके जोड़ा था.
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड पर जाकर, क्रैश की जांच वाली रिपोर्ट देखें.
अगर आपने कंसोल को रीफ़्रेश किया है और पांच मिनट के बाद भी आपको टेस्ट क्रैश नहीं दिख रहा है, तो डीबग लॉगिंग चालू करें. इससे आपको यह पता चलेगा कि आपका ऐप्लिकेशन, क्रैश रिपोर्ट भेज रहा है या नहीं.
बस, हो गया! Crashlytics अब आपके ऐप्लिकेशन के क्रैश होने की निगरानी कर रहा है. साथ ही, Android पर यह ऐप्लिकेशन के बंद होने और ANR की समस्याओं की निगरानी कर रहा है. अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए, Crashlytics डैशबोर्ड पर जाएं.
अगले चरण
क्रैश रिपोर्ट के सेटअप को पसंद के मुताबिक बनाएं. इसके लिए, ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियां, और अन्य नॉन-फ़ेटल गड़बड़ियों को ट्रैक करने की सुविधा जोड़ें.
Google Play के साथ इंटिग्रेट करें, ताकि आप Crashlytics डैशबोर्ड में सीधे Google Play ट्रैक के हिसाब से, अपने Android ऐप्लिकेशन के क्रैश होने की रिपोर्ट फ़िल्टर कर सकें. इससे आपको अपने डैशबोर्ड को खास बिल्ड पर बेहतर तरीके से फ़ोकस करने में मदद मिलती है.
Android Studio में ऐप्लिकेशन क्वालिटी इनसाइट विंडो की मदद से, अपने कोड के साथ-साथ स्टैक ट्रेस और क्रैश के आंकड़े देखें. यह विंडो, Electric Eel 2022.1.1 से उपलब्ध है.
बेहतर विश्लेषण और सुविधाओं के लिए, अपना डेटा BigQuery या Cloud Logging में एक्सपोर्ट करें. जैसे, अपने डेटा के बारे में क्वेरी करना, कस्टम डैशबोर्ड बनाना, और कस्टम सूचनाएं सेट अप करना.