| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android Android NDK Flutter Unity |
এই নির্দেশিকা থেকে আপনি জানতে পারবেন কীভাবে আপনার Flutter অ্যাপে Firebase Crashlytics ব্যবহার শুরু করবেন।
আপনার অ্যাপে Crashlytics Flutter প্লাগ-ইন সেট-আপ করার পরে, আপনি Firebase কনসোলে ক্র্যাশ সংক্রান্ত বিস্তারিত রিপোর্ট পেতে পারেন।
Crashlytics সেট-আপ করার জন্য কমান্ড-লাইন টুল ও আপনার IDE, দুটিই ব্যবহার করতে হয়। সেট-আপ সম্পূর্ণ করতে, Firebase-এ আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠাতে আপনাকে একটি টেস্ট এক্সেপশন থ্রো করতে বাধ্য করতে হবে।
শুরু করার আগে
আপনি আগে থেকে না করে থাকলে, আপনার Flutter প্রোজেক্টে Firebase কনফিগার ও ইনিশিয়ালাইজ করুন।
সাজেস্ট করা: ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্টের আগে ব্যবহারকারীর অ্যাকশন বুঝতে অটোমেটিক ব্রেডক্রাম্ব লগ পেতে, আপনার Firebase প্রোজেক্টে Google Analytics চালু করতে হবে।
আপনি নতুন Firebase প্রোজেক্ট তৈরি করলে, প্রোজেক্ট তৈরির ওয়ার্কফ্লো চলাকালীন Google Analytics চালু করুন।
আপনি যদি আগে থেকে থাকা এমন কোনও Firebase প্রোজেক্ট ব্যবহার করেন যেখানে Google Analytics চালু করা নেই, তাহলে আপনি Firebase কনসোলের
সেটিংস > ইন্টিগ্রেশন পৃষ্ঠা থেকে এটি চালু করতে পারবেন।
মনে রাখবেন, Crashlytics-এর সাথে কাজ করে এমন সব Android ও Apple প্ল্যাটফর্মের জন্য ব্রেডক্রাম্ব লগ উপলভ্য (watchOS ছাড়া)।
ধাপ ১: আপনার Flutter প্রোজেক্টে Crashlytics যোগ করুন
আপনার Flutter প্রোজেক্টের রুট থেকে, Crashlytics-এর জন্য 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 CLI (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ফ্ল্যাগে যে ডিরেক্টরি পাস করেন, এটিও সেই একই ডিরেক্টরি
ধাপ ২: ক্র্যাশ হ্যান্ডলার কনফিগার করা
আপনি 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 ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে একটি টেস্ট এক্সেপশন থ্রো করতে বাধ্য করতে হবে।
আপনার অ্যাপে কোড যোগ করুন যা আপনি টেস্ট এক্সেপশন থ্রো করার জন্য ব্যবহার করতে পারেন।
আপনি যদি এমন কোনও এরর হ্যান্ডলার যোগ করে থাকেন যা টপ-লেভেল
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-তে App Quality Insights উইন্ডোর মাধ্যমে (Electric Eel 2022.1.1 থেকে শুরু করে উপলভ্য) আপনার কোডের পাশাপাশি স্ট্যাক ট্রেস ও ক্র্যাশ সংক্রান্ত পরিসংখ্যান দেখুন।
আপনার ডেটা BigQuery বা Cloud Logging-এ এক্সপোর্ট করুন যাতে উন্নত বিশ্লেষণ ও ফিচার ব্যবহার করতে পারেন, যেমন আপনার ডেটা কোয়েরি করা, কাস্টম ড্যাশবোর্ড তৈরি করা এবং কাস্টম সতর্কতা সেট-আপ করা।