Flutter-এর জন্য Crashlytics ব্যবহার করা শুরু করা

প্ল্যাটফর্ম বেছে নিন: iOS+ Android Android NDK Flutter Unity


এই নির্দেশিকা থেকে আপনি কীভাবে Flutter অ্যাপে Firebase Crashlytics ব্যবহার শুরু করবেন তা জানতে পারবেন।

আপনার অ্যাপে Crashlytics Flutter প্লাগ-ইন সেট-আপ করার পরে, আপনি Firebase কনসোলে বিস্তারিত ক্র্যাশ রিপোর্ট পেতে পারবেন।

Crashlytics সেট-আপ করার জন্য কমান্ড-লাইন টুল ও IDE, দুটিই ব্যবহার করতে হয়। সেট-আপ সম্পূর্ণ করতে, Firebase-এ আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠানোর জন্য আপনাকে একটি টেস্ট ব্যতিক্রম জোর করে থ্রো করতে হবে।

শুরু করার আগে

  1. আপনি আগে এটি না করে থাকলে, আপনার Flutter প্রোজেক্টে Firebase কনফিগার ও ইনিশিয়ালাইজ করুন।

  2. সাজেস্ট করা: ক্র্যাশ, নন-ফ্যাটাল বা ANR ইভেন্ট পর্যন্ত ব্যবহারকারীর অ্যাকশন বুঝতে ব্রেডক্রাম্ব লগ অটোমেটিক পেতে, Firebase প্রোজেক্টে আপনাকে Google Analytics চালু করতে হবে।

    • আপনি নতুন Firebase প্রোজেক্ট তৈরি করলে, প্রোজেক্ট তৈরি করার ওয়ার্কফ্লো চলাকালীন Google Analytics চালু করুন।

    • আপনি যদি এমন কোনও আগে থেকে থাকা Firebase প্রোজেক্ট ব্যবহার করেন যেখানে Google Analytics চালু করা নেই, তাহলে আপনি Firebase কনসোলের সেটিংস > ইন্টিগ্রেশন পৃষ্ঠা থেকে এটি চালু করতে পারবেন।

    মনে রাখবেন, Crashlytics-এর (watchOS ছাড়া) সাথে কাজ করে এমন সব Android ও Apple প্ল্যাটফর্মের জন্য ব্রেডক্রাম্ব লগ উপলভ্য ।

ধাপ ১: আপনার 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+) ব্যবহার করে তা নিশ্চিত করুন, যাতে আপনার প্রোজেক্ট Crashlytics-এ অটোমেটিক Flutter সিম্বল (dSYM ফাইল) জেনারেট ও আপলোড করতে পারে।

    • 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:17104a2ced0c9b9b

      • PATH/TO/symbols: অ্যাপ্লিকেশন তৈরি করার সময় --split-debug-info ফ্ল্যাগে আপনি যে ডিরেক্টরি পাস করেন

ধাপ ২: ক্র্যাশ হ্যান্ডলার কনফিগার করা

আপনি FlutterError.onError with 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 ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে জোর করে একটি টেস্ট ব্যতিক্রম তৈরি করতে হবে।

  1. আপনার অ্যাপে এমন কোড যোগ করুন যা আপনি কোনও টেস্ট ব্যতিক্রমকে থ্রো করার জন্য বাধ্য করতে ব্যবহার করতে পারবেন।

    আপনি যদি এমন একটি এরর হ্যান্ডলার যোগ করে থাকেন যা FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) টপ-লেভেল Zone-এ কল করে, তাহলে আপনার অ্যাপে একটি বোতাম যোগ করতে আপনি নিম্নলিখিত কোড ব্যবহার করতে পারবেন যা প্রেস করলে, একটি টেস্ট ব্যতিক্রম থ্রো করে:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. আপনার অ্যাপ তৈরি ও রান করুন।

  3. আপনার অ্যাপের প্রথম রিপোর্ট পাঠানোর জন্য টেস্ট ব্যতিক্রম জোর করে থ্রো করুন:

    1. আপনার টেস্ট ডিভাইস বা এমুলেটর থেকে অ্যাপ খুলুন।

    2. আপনার অ্যাপে, উপরে দেওয়া কোড ব্যবহার করে আপনি যে টেস্ট ব্যতিক্রম বোতাম যোগ করেছেন সেটি প্রেস করুন।

  4. Firebase কনসোলে, DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে গিয়ে আপনার টেস্ট ক্র্যাশ রিপোর্ট চেক করুন।

    আপনি কনসোল রিফ্রেশ করার পরেও পাঁচ মিনিট পরে টেস্ট ক্র্যাশ দেখতে না পেলে, আপনার অ্যাপ ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং চালু করুন।


এই পর্যন্তই! Crashlytics এখন আপনার অ্যাপ ক্র্যাশ করছে কিনা তা মনিটর করছে এবং Android-এ, গুরুতর নয় এমন সমস্যা ও ANR মনিটর করছে। আপনার সব রিপোর্ট ও পরিসংখ্যান দেখতে ও তদন্ত করতে Crashlytics ড্যাশবোর্ড দেখুন।

পরবর্তী ধাপ