Crashlytics ড্যাশবোর্ডে (Flutter) পাঠযোগ্য ক্র্যাশ রিপোর্ট পাওয়া

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


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

কিছু ক্ষেত্রে, প্রোজেক্ট সম্পূর্ণভাবে কনফিগার করা নাও হতে পারে। এই গাইড অটোমেশন কী করে তা বর্ণনা করে এবং আপনার প্রোজেক্ট সেট-আপ ডিবাগ করার জন্য প্রথম ধাপগুলি প্রদান করে।

Apple প্ল্যাটফর্ম

dSYM ফাইল আপলোড করার জন্য আপনার কনফিগারেশন চেক করুন

Crashlytics Flutter প্লাগ-ইন যোগ করা এবং flutterfire configure কমান্ড চালানোর মাধ্যমে আপনার প্রোজেক্টের Xcode ওয়ার্কস্পেসে রান স্ক্রিপ্ট যোগ করার চেষ্টা করা হবে। এটি Crashlytics-এ প্রয়োজনীয় dSYM সিম্বল ফাইল খুঁজে আপলোড করে। এইসব ফাইল না থাকলে, আপনি Crashlytics ড্যাশবোর্ডে "dSYM নেই" অ্যালার্ট দেখতে পাবেন এবং হারিয়ে যাওয়া ফাইল আপলোড না করা পর্যন্ত ব্যাকএন্ডে ব্যতিক্রম হোল্ডে রাখা হবে।

আপনার এই সমস্যা হলে, প্রথমে রান স্ক্রিপ্ট ইনস্টল করা আছে কিনা তা নিশ্চিত করুন:

  1. আপনার প্রজেক্টের iOS ডিরেক্টরিতে Xcode ওয়ার্কস্পেস ফাইল খুঁজে নিয়ে খুলুন (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace)।

  2. [firebase_crashlytics] Crashlytics Upload Symbols নামের রান স্ক্রিপ্ট রানার টার্গেটের বিল্ড ফেজে যোগ করা হয়েছে কিনা তা শনাক্ত করুন।

    নিচে প্রযোজ্য বিভাগ থেকে জানুন যে রান স্ক্রিপ্ট আছে নাকি নেই অথবা রান স্ক্রিপ্ট আছে।

Flutter ও Crashlytics-এর জন্য আপনার ভার্সন কনফিগারেশন চেক করুন (--split-debug-info ফ্ল্যাগ ব্যবহার করলে)

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

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

Android

আপনার ডিপেন্ডেন্সি কনফিগারেশন চেক করুন

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

প্রোজেক্ট-লেভেল build.gradle ও অ্যাপ-লেভেলে build.gradle নিম্নলিখিত লাইনগুলি আছে কিনা দেখুন:

  • প্রোজেক্ট-লেভেল বিল্ড ফাইলে (android/build.gradle), নিম্নলিখিত লাইনটি আছে কিনা দেখুন:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • অ্যাপ-লেভেল বিল্ড ফাইলে (android/app/build.gradle), নিচে উল্লেখ করা লাইনটি আছে কিনা দেখুন:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

Flutter সিম্বল আপলোড করার জন্য CLI ব্যবহার করছেন কিনা তা চেক করুন (--split-debug-info ফ্ল্যাগ ব্যবহার করলে)

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

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 ফ্ল্যাগে আপনি যে ডিরেক্টরি পাস করেন

সমস্যা থেকে গেলে, অ্যান্ড্রয়েড-নির্দিষ্ট গাইড থেকে ছদ্মবেশী রিপোর্ট সংক্রান্ত সমস্যার সমাধান করুন।