ফ্লটারের জন্য ক্র্যাশলিটিক্স দিয়ে শুরু করুন

প্ল্যাটফর্ম নির্বাচন করুন: iOS+ অ্যান্ড্রয়েড অ্যান্ড্রয়েড এনডিকে ফ্লাটার ইউনিটি


এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে আপনার ফ্লাটার অ্যাপে Firebase Crashlytics ব্যবহার শুরু করবেন।

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

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

শুরু করার আগে

  1. যদি আগে থেকে না করে থাকেন, তাহলে আপনার ফ্লাটার প্রজেক্টে ফায়ারবেস কনফিগার এবং ইনিশিয়ালাইজ করুন

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

    • আপনার বিদ্যমান Firebase প্রজেক্টে যদি Google Analytics সক্রিয় করা না থাকে, তাহলে আপনি আপনার প্রজেক্টের Integrations ট্যাব থেকে Google Analytics সক্রিয় করতে পারেন। Firebase কনসোলে > প্রজেক্ট সেটিংস

    • আপনি যদি একটি নতুন Firebase প্রজেক্ট তৈরি করেন, তাহলে প্রজেক্ট তৈরির প্রক্রিয়া চলাকালীন Google Analytics সক্রিয় করুন।

    উল্লেখ্য যে, Crashlytics দ্বারা সমর্থিত সমস্ত অ্যান্ড্রয়েড এবং অ্যাপল প্ল্যাটফর্মের (watchOS ব্যতীত) জন্য ব্রেডক্রাম্ব লগ উপলব্ধ।

ধাপ ১ : আপনার ফ্লাটার প্রজেক্টে Crashlytics যোগ করুন

  1. আপনার ফ্লাটার প্রজেক্টের রুট থেকে, Crashlytics এর ফ্লাটার প্লাগইনটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান।

    ব্রেডক্রাম্ব লগের সুবিধা নিতে, আপনার অ্যাপে Google Analytics ফ্লাটার প্লাগইনটিও যোগ করুন। আপনার ফায়ারবেস প্রজেক্টে গুগল অ্যানালিটিক্স সক্রিয় করা আছে কিনা, তা নিশ্চিত করুন।

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. আপনার ফ্লাটার প্রজেক্টের রুট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

    flutterfire configure
    

    এই কমান্ডটি চালালে আপনার ফ্লাটার অ্যাপের ফায়ারবেস কনফিগারেশন হালনাগাদ থাকে এবং অ্যান্ড্রয়েডের জন্য, আপনার অ্যাপে প্রয়োজনীয় Crashlytics গ্রেডল প্লাগইনটি যুক্ত হয়।

  3. একবার সম্পন্ন হলে, আপনার ফ্লাটার প্রজেক্টটি রি-বিল্ড করুন:

    flutter run
    
  4. (ঐচ্ছিক) যদি আপনার ফ্লাটার প্রজেক্টে --split-debug-info ফ্ল্যাগ (এবং ঐচ্ছিকভাবে, --obfuscate ফ্ল্যাগও) ব্যবহৃত হয়, তাহলে আপনার অ্যাপগুলোর পাঠযোগ্য স্ট্যাক ট্রেস দেখানোর জন্য অতিরিক্ত কিছু পদক্ষেপের প্রয়োজন হবে।

    • অ্যাপল প্ল্যাটফর্ম: নিশ্চিত করুন যে আপনার প্রজেক্টটি প্রস্তাবিত ভার্সন কনফিগারেশন (Flutter 3.12.0+ এবং Crashlytics Flutter প্লাগইন 3.3.4+) ব্যবহার করছে, যাতে আপনার প্রজেক্ট স্বয়ংক্রিয়ভাবে Flutter সিম্বল (dSYM ফাইল) তৈরি করে Crashlytics এ আপলোড করতে পারে।

    • অ্যান্ড্রয়েড: ফ্লাটার ডিবাগ সিম্বল আপলোড করতে Firebase সিএলআই (v.11.9.0+) ব্যবহার করুন। একটি অবফাসকেটেড কোড বিল্ড থেকে ক্র্যাশ রিপোর্ট করার আগে আপনাকে ডিবাগ সিম্বলগুলো আপলোড করতে হবে।

      আপনার ফ্লাটার প্রজেক্টের রুট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি (প্যাকেজ নেম নয়)
        উদাহরণস্বরূপ ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি: 1:567383003300:android:17104a2ced0c9b9b

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

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

আপনি 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());
}

ফ্লাটার ফ্রেমওয়ার্ক দ্বারা হ্যান্ডেল করা হয় না এমন অ্যাসিঙ্ক্রোনাস ত্রুটিগুলি ধরার জন্য, 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. আপনার অ্যাপে এমন কোড যোগ করুন যা ব্যবহার করে আপনি একটি টেস্ট এক্সেপশন থ্রো করতে বাধ্য করতে পারবেন।

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

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

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

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

    2. আপনার অ্যাপে, উপরের কোড ব্যবহার করে যোগ করা টেস্ট এক্সেপশন বাটনটি চাপুন।

  4. আপনার টেস্ট ক্র্যাশটি দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।

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


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

পরবর্তী পদক্ষেপ