इस क्विकस्टार्ट में बताया गया है कि Crashlytics Flutter प्लगिन के साथ अपने ऐप्लिकेशन में Firebase Crashlytics को कैसे सेट अप किया जाता है, ताकि 'Firebase कंसोल' में ऐप्लिकेशन की क्रैश रिपोर्ट से जुड़ी पूरी जानकारी मिल सके.
Crashlytics को सेट अप करने के लिए, कमांड-लाइन टूल और आईडीई, दोनों का इस्तेमाल करना होता है. सेटअप पूरा करने के लिए, आपको Firebase को अपनी पहली क्रैश रिपोर्ट भेजने के लिए, टेस्ट के एक अपवाद को ज़बरदस्ती लागू करना होगा.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Flutter प्रोजेक्ट में Firebase को कॉन्फ़िगर और शुरू करें.
इसका सुझाव दिया जाता है: अगर आपको उपयोगकर्ता की कार्रवाइयों के बारे में जानने के लिए, अपने-आप ब्रेडक्रंब लॉग मिलेंगे, जिनमें क्रैश, नुकसान न पहुंचाने वाला या ANR इवेंट हुआ, तो आपको अपने Firebase प्रोजेक्ट में Google Analytics की सुविधा चालू करनी होगी.
अगर आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics चालू नहीं है, तो Firebase कंसोल में
के > प्रोजेक्ट सेटिंगइंटिग्रेशन टैब से, Google Analytics को चालू किया जा सकता है. अगर आपको नया Firebase प्रोजेक्ट बनाना है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics चालू करें.
ध्यान दें कि ब्रेडक्रंब लॉग उन सभी Android और Apple प्लैटफ़ॉर्म के लिए उपलब्ध हैं जिनके साथ Crashlytics काम करता है (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+) का इस्तेमाल किया जा रहा है. इससे आपका प्रोजेक्ट Crashlytics पर Flutter सिंबल (dSYM फ़ाइलें) अपने-आप जनरेट और अपलोड कर सकता है.
Android: फ़्लटर डीबग सिंबल अपलोड करने के लिए 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:17104a2ced0c9b9b
PATH/TO/symbols
: वही डायरेक्ट्री जिसे ऐप्लिकेशन बनाते समय,--split-debug-info
फ़्लैग को पास किया जाता है
दूसरा चरण: क्रैश हैंडलर कॉन्फ़िगर करें
FlutterError.onError
को FirebaseCrashlytics.instance.recordFlutterFatalError
से बदलकर, Flutter फ़्रेमवर्क में अपलोड की गई सभी गड़बड़ियों को अपने-आप पकड़ा जा सकता है:
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 डैशबोर्ड में शुरुआती डेटा देखने के लिए, आपको जांच वाले किसी अपवाद को ज़बरदस्ती इस्तेमाल करना होगा.
अपने ऐप्लिकेशन में ऐसा कोड जोड़ें जिसका इस्तेमाल करके, जांच के किसी अपवाद को ज़बरदस्ती चलाया जा सके.
अगर आपने एक ऐसा गड़बड़ी हैंडलर जोड़ा है जो
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
को टॉप-लेवलZone
पर कॉल करता है, तो अपने ऐप्लिकेशन में बटन जोड़ने के लिए इस कोड का इस्तेमाल किया जा सकता है. इसे दबाने पर, अपवाद वाला एक कोड दिखता है:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
अपना ऐप्लिकेशन बनाएं और चलाएं.
अपने ऐप्लिकेशन की पहली रिपोर्ट भेजने के लिए, टेस्ट के अपवाद को हर हाल में इस्तेमाल करें:
अपने टेस्ट डिवाइस या एम्युलेटर से अपना ऐप्लिकेशन खोलें.
अपने ऐप्लिकेशन में, उस 'टेस्ट के लिए अपवाद' बटन को दबाएं जिसे आपने ऊपर दिए गए कोड का इस्तेमाल करके जोड़ा है.
टेस्ट क्रैश देखने के लिए, Firebase कंसोल के Crashlytics डैशबोर्ड पर जाएं.
अगर आपने कंसोल रीफ़्रेश किया है और पांच मिनट के बाद भी टेस्ट क्रैश, नहीं दिखता है, तो डीबग लॉग करने की सुविधा चालू करके देखें कि आपका ऐप्लिकेशन क्रैश रिपोर्ट भेज रहा है या नहीं.
बस इतना ही! Crashlytics, आपके ऐप्लिकेशन के क्रैश होने की पहचान करने के साथ-साथ, Android पर गंभीर गड़बड़ियों और ANR से जुड़ी गड़बड़ियों की निगरानी कर रहा है. अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए,
Crashlytics डैशबोर्ड
पर जाएं.
अगले चरण
ऐप्लिकेशन की क्रैश रिपोर्ट को अपनी ज़रूरत के मुताबिक सेटअप करें इसके लिए, ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियों, और अन्य गड़बड़ियों की ट्रैकिंग जोड़ें.
Google Play के साथ इंटिग्रेट करें, ताकि Android ऐप्लिकेशन की क्रैश रिपोर्ट को सीधे Crashlytics डैशबोर्ड में, Google Play ट्रैक के हिसाब से फ़िल्टर किया जा सके. इससे अपने डैशबोर्ड के खास बिल्ड पर बेहतर तरीके से फ़ोकस किया जा सकता है.
Android Studio में ऐप्लिकेशन की क्वालिटी से जुड़ी अहम जानकारी विंडो की मदद से, अपने कोड के साथ स्टैक ट्रेस और क्रैश के आंकड़े देखें. यह सुविधा Electric Eel 2022.1.1. से उपलब्ध होगी.