यह क्विकस्टार्ट बताता है कि क्रैशलिटिक्स फ़्लटर प्लगइन के साथ अपने ऐप में फायरबेस क्रैशलिटिक्स कैसे सेट करें ताकि आप फायरबेस कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।
क्रैशलिटिक्स की स्थापना में कमांड-लाइन टूल और आपकी आईडीई दोनों का उपयोग शामिल है। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट फ़ायरबेस पर भेजने के लिए एक परीक्षण अपवाद को बलपूर्वक फेंकने की आवश्यकता होगी।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने फ़्लटर प्रोजेक्ट में फ़ायरबेस को कॉन्फ़िगर और प्रारंभ करें ।
अनुशंसित : किसी क्रैश, गैर-घातक, या ANR ईवेंट की ओर ले जाने वाली उपयोगकर्ता गतिविधियों को समझने के लिए स्वचालित रूप से ब्रेडक्रंब लॉग प्राप्त करने के लिए, आपको अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करना होगा।
यदि आपके मौजूदा फायरबेस प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप अपने एकीकरण टैब से Google Analytics सक्षम कर सकते हैं
यदि आप एक नया फायरबेस प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण वर्कफ़्लो के दौरान Google Analytics सक्षम करें।
ध्यान दें कि ब्रेडक्रंब लॉग क्रैशलिटिक्स (वॉचओएस को छोड़कर) द्वारा समर्थित सभी एंड्रॉइड और ऐप्पल प्लेटफार्मों के लिए उपलब्ध हैं।
चरण 1 : अपने फ़्लटर प्रोजेक्ट में क्रैशलाइटिक्स जोड़ें
अपने फ़्लटर प्रोजेक्ट के रूट से, क्रैशलाइटिक्स के लिए फ़्लटर प्लगइन स्थापित करने के लिए निम्न कमांड चलाएँ।
ब्रेडक्रंब लॉग का लाभ उठाने के लिए, अपने ऐप में Google Analytics के लिए फ़्लटर प्लगइन भी जोड़ें। सुनिश्चित करें कि आपके फायरबेस प्रोजेक्ट में Google Analytics सक्षम है ।
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
अपने फ़्लटर प्रोजेक्ट की रूट डायरेक्टरी से, निम्न कमांड चलाएँ:
flutterfire configure
इस कमांड को चलाने से यह सुनिश्चित होता है कि आपके फ़्लटर ऐप का फायरबेस कॉन्फ़िगरेशन अद्यतित है और, एंड्रॉइड के लिए, आपके ऐप में आवश्यक क्रैशलाइटिक्स ग्रैडल प्लगइन जुड़ जाता है।
एक बार पूरा होने पर, अपने फ़्लटर प्रोजेक्ट का पुनर्निर्माण करें:
flutter run
(वैकल्पिक) यदि आपका फ़्लटर प्रोजेक्ट
--split-debug-info
फ़्लैग (और, वैकल्पिक रूप से,--obfuscate
फ़्लैग) का उपयोग करता है, तो आपके ऐप्स के लिए पठनीय स्टैक ट्रेस दिखाने के लिए अतिरिक्त चरणों की आवश्यकता होती है।Apple प्लेटफ़ॉर्म: सुनिश्चित करें कि आपका प्रोजेक्ट अनुशंसित संस्करण कॉन्फ़िगरेशन (फ़्लटर 3.12.0+ और क्रैशलाइटिक्स फ़्लटर प्लगइन 3.3.4+) का उपयोग कर रहा है ताकि आपका प्रोजेक्ट स्वचालित रूप से फ़्लटर प्रतीकों (dSYM फ़ाइलें) को क्रैशलाईटिक्स पर उत्पन्न और अपलोड कर सके।
एंड्रॉइड: फ़्लटर डिबग प्रतीकों को अपलोड करने के लिए फायरबेस सीएलआई (v.11.9.0+) का उपयोग करें। किसी अस्पष्ट कोड बिल्ड से क्रैश की रिपोर्ट करने से पहले आपको डिबग प्रतीकों को अपलोड करना होगा।
अपने फ़्लटर प्रोजेक्ट की रूट डायरेक्टरी से, निम्न कमांड चलाएँ:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : आपका फायरबेस एंड्रॉइड ऐप आईडी (आपके पैकेज का नाम नहीं)
उदाहरण फायरबेस एंड्रॉइड ऐप आईडी:1:567383003300:android:17104a2ced0c9b9b
अपनी फायरबेस ऐप आईडी ढूंढने के दो तरीके यहां दिए गए हैं:
आपकी
google-services.json
फ़ाइल में, आपकी ऐप आईडीmobilesdk_app_id
मान है; याफायरबेस कंसोल में, अपनी प्रोजेक्ट सेटिंग्स पर जाएं। योर ऐप्स कार्ड तक नीचे स्क्रॉल करें, फिर उसकी ऐप आईडी ढूंढने के लिए वांछित फायरबेस ऐप पर क्लिक करें।
PATH/TO /symbols
: वही निर्देशिका जिसे आप एप्लिकेशन बनाते समय--split-debug-info
ध्वज पर पास करते हैं
चरण 2 : क्रैश हैंडलर कॉन्फ़िगर करें
आप FirebaseCrashlytics.instance.recordFlutterFatalError
के साथ FlutterError.onError
ओवरराइड करके फ़्लटर फ्रेमवर्क के भीतर आने वाली सभी त्रुटियों को स्वचालित रूप से पकड़ सकते हैं:
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());
}
फ़्लटर फ़्रेमवर्क द्वारा नियंत्रित नहीं की जाने वाली अतुल्यकालिक त्रुटियों को पकड़ने के लिए, 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());
}
अन्य प्रकार की त्रुटियों को कैसे संभालें इसके उदाहरणों के लिए, क्रैश रिपोर्ट कस्टमाइज़ करें देखें।
चरण 3 : सेटअप समाप्त करने के लिए एक परीक्षण क्रैश को बाध्य करें
Crashlytics की स्थापना पूरी करने और Firebase कंसोल के Crashlytics डैशबोर्ड में प्रारंभिक डेटा देखने के लिए, आपको एक परीक्षण अपवाद को बलपूर्वक फेंकने की आवश्यकता है।
अपने ऐप में कोड जोड़ें जिसका उपयोग आप परीक्षण अपवाद को बलपूर्वक फेंकने के लिए कर सकते हैं।
यदि आपने एक त्रुटि हैंडलर जोड़ा है जो शीर्ष-स्तरीय
Zone
मेंFirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
कॉल करता है, तो आप अपने ऐप में एक बटन जोड़ने के लिए निम्न कोड का उपयोग कर सकते हैं, जिसे दबाए जाने पर, फेंकता है एक परीक्षण अपवाद:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
अपना ऐप बनाएं और चलाएं.
अपने ऐप की पहली रिपोर्ट भेजने के लिए परीक्षण अपवाद को बलपूर्वक फेंकने के लिए बाध्य करें:
अपने परीक्षण उपकरण या एम्यूलेटर से अपना ऐप खोलें।
अपने ऐप में, परीक्षण अपवाद बटन दबाएं जिसे आपने उपरोक्त कोड का उपयोग करके जोड़ा है।
अपना परीक्षण क्रैश देखने के लिए फायरबेस कंसोल के क्रैशलाइटिक्स डैशबोर्ड पर जाएं।
यदि आपने कंसोल को रीफ्रेश किया है और आपको पांच मिनट के बाद भी परीक्षण क्रैश नहीं दिख रहा है, तो यह देखने के लिए डीबग लॉगिंग सक्षम करें कि आपका ऐप क्रैश रिपोर्ट भेज रहा है या नहीं।
और बस! क्रैशलाइटिक्स अब आपके ऐप के क्रैश होने और एंड्रॉइड पर गैर-घातक त्रुटियों और एएनआर की निगरानी कर रहा है। अपनी सभी रिपोर्ट और आँकड़े देखने और जाँचने के लिए क्रैशलाइटिक्स डैशबोर्ड पर जाएँ।
अगले कदम
ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियाँ और अतिरिक्त गैर-घातक त्रुटियों की ट्रैकिंग जोड़कर अपनी क्रैश रिपोर्ट सेटअप को अनुकूलित करें ।
Google Play के साथ एकीकृत करें ताकि आप अपने Android ऐप की क्रैश रिपोर्ट को Google Play ट्रैक द्वारा सीधे Crashlytics डैशबोर्ड में फ़िल्टर कर सकें। यह आपको अपने डैशबोर्ड को विशिष्ट बिल्ड पर बेहतर ढंग से केंद्रित करने की अनुमति देता है।
एंड्रॉइड स्टूडियो में ऐप क्वालिटी इनसाइट्स विंडो के साथ अपने कोड के साथ स्टैक ट्रेस और क्रैश आंकड़े देखें (इलेक्ट्रिक ईल 2022.1.1 से उपलब्ध)।
यह क्विकस्टार्ट बताता है कि क्रैशलिटिक्स फ़्लटर प्लगइन के साथ अपने ऐप में फायरबेस क्रैशलिटिक्स कैसे सेट करें ताकि आप फायरबेस कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।
क्रैशलिटिक्स की स्थापना में कमांड-लाइन टूल और आपकी आईडीई दोनों का उपयोग शामिल है। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट फ़ायरबेस पर भेजने के लिए एक परीक्षण अपवाद को बलपूर्वक फेंकने की आवश्यकता होगी।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने फ़्लटर प्रोजेक्ट में फ़ायरबेस को कॉन्फ़िगर और प्रारंभ करें ।
अनुशंसित : किसी क्रैश, गैर-घातक, या ANR ईवेंट की ओर ले जाने वाली उपयोगकर्ता गतिविधियों को समझने के लिए स्वचालित रूप से ब्रेडक्रंब लॉग प्राप्त करने के लिए, आपको अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करना होगा।
यदि आपके मौजूदा फायरबेस प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप अपने एकीकरण टैब से Google Analytics सक्षम कर सकते हैं
यदि आप एक नया फायरबेस प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण वर्कफ़्लो के दौरान Google Analytics सक्षम करें।
ध्यान दें कि ब्रेडक्रंब लॉग क्रैशलिटिक्स (वॉचओएस को छोड़कर) द्वारा समर्थित सभी एंड्रॉइड और ऐप्पल प्लेटफार्मों के लिए उपलब्ध हैं।
चरण 1 : अपने फ़्लटर प्रोजेक्ट में क्रैशलाइटिक्स जोड़ें
अपने फ़्लटर प्रोजेक्ट के रूट से, क्रैशलाइटिक्स के लिए फ़्लटर प्लगइन स्थापित करने के लिए निम्न कमांड चलाएँ।
ब्रेडक्रंब लॉग का लाभ उठाने के लिए, अपने ऐप में Google Analytics के लिए फ़्लटर प्लगइन भी जोड़ें। सुनिश्चित करें कि आपके फायरबेस प्रोजेक्ट में Google Analytics सक्षम है ।
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
अपने फ़्लटर प्रोजेक्ट की रूट डायरेक्टरी से, निम्न कमांड चलाएँ:
flutterfire configure
इस कमांड को चलाने से यह सुनिश्चित होता है कि आपके फ़्लटर ऐप का फायरबेस कॉन्फ़िगरेशन अद्यतित है और, एंड्रॉइड के लिए, आपके ऐप में आवश्यक क्रैशलाइटिक्स ग्रैडल प्लगइन जुड़ जाता है।
एक बार पूरा होने पर, अपने फ़्लटर प्रोजेक्ट का पुनर्निर्माण करें:
flutter run
(वैकल्पिक) यदि आपका फ़्लटर प्रोजेक्ट
--split-debug-info
फ़्लैग (और, वैकल्पिक रूप से,--obfuscate
फ़्लैग) का उपयोग करता है, तो आपके ऐप्स के लिए पठनीय स्टैक ट्रेस दिखाने के लिए अतिरिक्त चरणों की आवश्यकता होती है।Apple प्लेटफ़ॉर्म: सुनिश्चित करें कि आपका प्रोजेक्ट अनुशंसित संस्करण कॉन्फ़िगरेशन (फ़्लटर 3.12.0+ और क्रैशलाइटिक्स फ़्लटर प्लगइन 3.3.4+) का उपयोग कर रहा है ताकि आपका प्रोजेक्ट स्वचालित रूप से फ़्लटर प्रतीकों (dSYM फ़ाइलें) को क्रैशलाईटिक्स पर उत्पन्न और अपलोड कर सके।
एंड्रॉइड: फ़्लटर डिबग प्रतीकों को अपलोड करने के लिए फायरबेस सीएलआई (v.11.9.0+) का उपयोग करें। किसी अस्पष्ट कोड बिल्ड से क्रैश की रिपोर्ट करने से पहले आपको डिबग प्रतीकों को अपलोड करना होगा।
अपने फ़्लटर प्रोजेक्ट की रूट डायरेक्टरी से, निम्न कमांड चलाएँ:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : आपका फायरबेस एंड्रॉइड ऐप आईडी (आपके पैकेज का नाम नहीं)
उदाहरण फायरबेस एंड्रॉइड ऐप आईडी:1:567383003300:android:17104a2ced0c9b9b
अपनी फायरबेस ऐप आईडी ढूंढने के दो तरीके यहां दिए गए हैं:
आपकी
google-services.json
फ़ाइल में, आपकी ऐप आईडीmobilesdk_app_id
मान है; याफायरबेस कंसोल में, अपनी प्रोजेक्ट सेटिंग्स पर जाएं। योर ऐप्स कार्ड तक नीचे स्क्रॉल करें, फिर उसकी ऐप आईडी ढूंढने के लिए वांछित फायरबेस ऐप पर क्लिक करें।
PATH/TO /symbols
: वही निर्देशिका जिसे आप एप्लिकेशन बनाते समय--split-debug-info
ध्वज पर पास करते हैं
चरण 2 : क्रैश हैंडलर कॉन्फ़िगर करें
आप FirebaseCrashlytics.instance.recordFlutterFatalError
के साथ FlutterError.onError
ओवरराइड करके फ़्लटर फ्रेमवर्क के भीतर आने वाली सभी त्रुटियों को स्वचालित रूप से पकड़ सकते हैं:
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());
}
फ़्लटर फ़्रेमवर्क द्वारा नियंत्रित नहीं की जाने वाली अतुल्यकालिक त्रुटियों को पकड़ने के लिए, 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());
}
अन्य प्रकार की त्रुटियों को कैसे संभालें इसके उदाहरणों के लिए, क्रैश रिपोर्ट कस्टमाइज़ करें देखें।
चरण 3 : सेटअप समाप्त करने के लिए एक परीक्षण क्रैश को बाध्य करें
Crashlytics की स्थापना पूरी करने और Firebase कंसोल के Crashlytics डैशबोर्ड में प्रारंभिक डेटा देखने के लिए, आपको एक परीक्षण अपवाद को बलपूर्वक फेंकने की आवश्यकता है।
अपने ऐप में कोड जोड़ें जिसका उपयोग आप परीक्षण अपवाद को बलपूर्वक फेंकने के लिए कर सकते हैं।
यदि आपने एक त्रुटि हैंडलर जोड़ा है जो शीर्ष-स्तरीय
Zone
मेंFirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
कॉल करता है, तो आप अपने ऐप में एक बटन जोड़ने के लिए निम्न कोड का उपयोग कर सकते हैं, जिसे दबाए जाने पर, फेंकता है एक परीक्षण अपवाद:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
अपना ऐप बनाएं और चलाएं.
अपने ऐप की पहली रिपोर्ट भेजने के लिए परीक्षण अपवाद को बलपूर्वक फेंकने के लिए बाध्य करें:
अपने परीक्षण उपकरण या एम्यूलेटर से अपना ऐप खोलें।
अपने ऐप में, परीक्षण अपवाद बटन दबाएं जिसे आपने उपरोक्त कोड का उपयोग करके जोड़ा है।
अपना परीक्षण क्रैश देखने के लिए फायरबेस कंसोल के क्रैशलाइटिक्स डैशबोर्ड पर जाएं।
यदि आपने कंसोल को रीफ्रेश किया है और आपको पांच मिनट के बाद भी परीक्षण क्रैश नहीं दिख रहा है, तो यह देखने के लिए डीबग लॉगिंग सक्षम करें कि आपका ऐप क्रैश रिपोर्ट भेज रहा है या नहीं।
और बस! क्रैशलाइटिक्स अब आपके ऐप के क्रैश होने और एंड्रॉइड पर गैर-घातक त्रुटियों और एएनआर की निगरानी कर रहा है। अपनी सभी रिपोर्ट और आँकड़े देखने और जाँचने के लिए क्रैशलाइटिक्स डैशबोर्ड पर जाएँ।
अगले कदम
ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियाँ और अतिरिक्त गैर-घातक त्रुटियों की ट्रैकिंग जोड़कर अपनी क्रैश रिपोर्ट सेटअप को अनुकूलित करें ।
Google Play के साथ एकीकृत करें ताकि आप अपने Android ऐप की क्रैश रिपोर्ट को Google Play ट्रैक द्वारा सीधे Crashlytics डैशबोर्ड में फ़िल्टर कर सकें। यह आपको अपने डैशबोर्ड को विशिष्ट बिल्ड पर बेहतर ढंग से केंद्रित करने की अनुमति देता है।
एंड्रॉइड स्टूडियो में ऐप क्वालिटी इनसाइट्स विंडो के साथ अपने कोड के साथ स्टैक ट्रेस और क्रैश आंकड़े देखें (इलेक्ट्रिक ईल 2022.1.1 से उपलब्ध)।