| প্ল্যাটফর্ম নির্বাচন করুন: | iOS+ অ্যান্ড্রয়েড ফ্লাটার ইউনিটি |
ডিফল্টরূপে, Firebase Crashlytics স্বয়ংক্রিয়ভাবে আপনার ফ্লাটার প্রজেক্টকে প্রয়োজনীয় সিম্বল ফাইল আপলোড করার জন্য ইন্সট্রুমেন্ট করে, যা ক্র্যাশ রিপোর্টগুলোকে ডিওবিফাসকেটেড এবং মানুষের পাঠযোগ্য করে তোলে।
দুর্ভাগ্যবশত, এমন কিছু পরিস্থিতি তৈরি হতে পারে যার ফলে প্রজেক্টটি পুরোপুরি কনফিগার করা সম্ভব হয় না। এই নির্দেশিকাটিতে অটোমেশন কী কাজ করে তা তুলে ধরা হয়েছে এবং আপনার প্রজেক্ট সেটআপের ত্রুটি খুঁজে বের করার জন্য প্রাথমিক পদক্ষেপগুলো দেওয়া হয়েছে।
অ্যাপল প্ল্যাটফর্ম
dSYM ফাইল আপলোড করার জন্য আপনার কনফিগারেশন পরীক্ষা করুন।
Crashlytics Flutter প্লাগইনটি যোগ করে ` flutterfire configure কমান্ডটি চালালে, এটি আপনার প্রোজেক্টের Xcode ওয়ার্কস্পেসে একটি রান স্ক্রিপ্ট যোগ করার চেষ্টা করবে, যা প্রয়োজনীয় dSYM সিম্বল ফাইলগুলো খুঁজে বের করে Crashlytics এ আপলোড করে। এই ফাইলগুলো ছাড়া, আপনি Crashlytics ড্যাশবোর্ডে একটি "Missing dSYM" অ্যালার্ট দেখতে পাবেন এবং অনুপস্থিত ফাইলগুলো আপলোড না হওয়া পর্যন্ত ব্যাকএন্ডে এক্সেপশনগুলো আটকে থাকবে।
আপনার যদি এই সমস্যাটি থাকে, তাহলে প্রথমে নিশ্চিত করুন যে আপনার রান স্ক্রিপ্টটি ইনস্টল করা আছে:
আপনার প্রোজেক্টের iOS ডিরেক্টরিতে (
FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace) Xcode ওয়ার্কস্পেস ফাইলটি খুঁজুন এবং খুলুন।রানার টার্গেটের বিল্ড ফেজে
[firebase_crashlytics] Crashlytics Upload Symbolsশিরোনামের রান স্ক্রিপ্টটি যোগ করা হয়েছে কিনা তা শনাক্ত করুন।রান স্ক্রিপ্টটি বিদ্যমান নেই নাকি বিদ্যমান আছে , তা জানতে নিচের প্রযোজ্য অংশটি দেখুন।
এই রান স্ক্রিপ্টটি বিদ্যমান না থাকলে, আপনি এটি ম্যানুয়ালি যোগ করতে পারেন:
আপনার Apple অ্যাপের জন্য Firebase অ্যাপ আইডিটি খুঁজে বের করুন। এখানে দুটি ভিন্ন জায়গা রয়েছে যেখানে আপনি এই আইডিটি খুঁজে পেতে পারেন:
Firebase কনসোলে, আপনার
> প্রজেক্ট সেটিংস । 'আপনার অ্যাপস' কার্ডে যান, তারপর আপনার Firebase Apple অ্যাপে ক্লিক করে অ্যাপটির তথ্য, যার মধ্যে এর অ্যাপ আইডি-ও রয়েছে, তা দেখুন। আপনার ফ্লাটার প্রজেক্টের টপ-লেভেল ডিরেক্টরিতে
firebase_options.dartফাইলটি খুঁজুন। আপনার অ্যাপল অ্যাপের ফায়ারবেস অ্যাপ আইডিটিappIdহিসাবে চিহ্নিত করা থাকে।
> নতুন রান স্ক্রিপ্ট পর্যায়-এ ক্লিক করুন।
নিশ্চিত করুন যে এই নতুন রান স্ক্রিপ্ট পর্যায়টি আপনার প্রোজেক্টের সর্বশেষ বিল্ড পর্যায়। অন্যথায়, Crashlytics dSYM-গুলোকে সঠিকভাবে প্রসেস করতে পারবে না।
নতুন রান স্ক্রিপ্ট সেকশনটি প্রসারিত করুন।
স্ক্রিপ্ট ফিল্ডে (যা শেল লেবেলের নিচে অবস্থিত), নিম্নলিখিত রান স্ক্রিপ্টগুলো যোগ করুন।
এই স্ক্রিপ্টগুলো আপনার dSYM ফাইলগুলো প্রসেস করে এবং Crashlytics এ আপলোড করে।
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
- FIREBASE_APP_ID : আপনার ফায়ারবেস অ্যাপল অ্যাপ আইডি (আপনার অ্যাপল বান্ডেল আইডি নয়)
উদাহরণস্বরূপ ফায়ারবেস অ্যাপল অ্যাপ আইডি:1:1234567890:ios:321abc456def7890
আপনার ফায়ারবেস অ্যাপ আইডি খুঁজে বের করার দুটি উপায় নিচে দেওয়া হলো:
আপনার
GoogleService-Info.plistফাইলে, আপনার অ্যাপ আইডি হলGOOGLE_APP_IDভ্যালুটি; অথবাFirebase কনসোলে, আপনার প্রজেক্ট সেটিংসে যান। 'Your apps' কার্ডে গিয়ে, কাঙ্ক্ষিত Firebase অ্যাপটির অ্যাপ আইডি খুঁজে বের করতে সেটিতে ক্লিক করুন।
- FIREBASE_APP_ID : আপনার ফায়ারবেস অ্যাপল অ্যাপ আইডি (আপনার অ্যাপল বান্ডেল আইডি নয়)
ইনপুট ফাইলস সেকশনে, নিম্নলিখিত ফাইলগুলোর অবস্থানের পাথগুলো যোগ করুন:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
যদি রান স্ক্রিপ্টটি বিদ্যমান থাকে, তাহলে dSYM সংক্রান্ত সমস্যা সমাধানের জন্য অ্যাপল-এর নির্দিষ্ট নির্দেশিকাটি দেখুন। যদি আপনি বর্ণিত প্রক্রিয়ার মাধ্যমে আপনার dSYM ফাইলগুলি আপলোড করতে চান, তাহলে আপনাকে নিম্নলিখিত অতিরিক্ত পদক্ষেপগুলি নিতে হবে:
আপনার Apple অ্যাপের জন্য Firebase অ্যাপ আইডিটি খুঁজে বের করুন। এখানে দুটি ভিন্ন জায়গা রয়েছে যেখানে আপনি এই আইডিটি খুঁজে পেতে পারেন:
Firebase কনসোলে, আপনার
> প্রজেক্ট সেটিংস । 'আপনার অ্যাপস' কার্ডে যান, তারপর আপনার Firebase Apple অ্যাপে ক্লিক করে অ্যাপটির তথ্য, যার মধ্যে এর অ্যাপ আইডি-ও রয়েছে, তা দেখুন। আপনার ফ্লাটার প্রজেক্টের টপ-লেভেল ডিরেক্টরিতে
firebase_options.dartফাইলটি খুঁজুন। আপনার অ্যাপল অ্যাপের ফায়ারবেস অ্যাপ আইডিটিappIdহিসাবে চিহ্নিত করা থাকে।
upload-symbolsস্ক্রিপ্টটি চালানোর সময়, এর পরিবর্তেব্যবহার করুন।-ai FIREBASE_APPLE_APP_ID-gsp /path/to/GoogleService-Info.plist.
Flutter এবং Crashlytics এর জন্য আপনার ভার্সন কনফিগারেশন যাচাই করুন (যদি --split-debug-info ফ্ল্যাগটি ব্যবহার করে থাকেন)।
আপনার ফ্লাটার প্রজেক্টে যদি --split-debug-info ফ্ল্যাগ (এবং ঐচ্ছিকভাবে --obfuscate ফ্ল্যাগও) ব্যবহৃত হয়, তাহলে আপনার অ্যাপের পাঠযোগ্য স্ট্যাক ট্রেস দেখানোর জন্য অতিরিক্ত কিছু পদক্ষেপের প্রয়োজন হবে।
নিশ্চিত করুন যে আপনার প্রজেক্টটি প্রস্তাবিত ভার্সন কনফিগারেশন (Flutter 3.12.0+ এবং Crashlytics Flutter প্লাগইন 3.3.4+) ব্যবহার করছে, যাতে আপনার প্রজেক্ট স্বয়ংক্রিয়ভাবে Flutter সিম্বল (dSYM ফাইল) তৈরি করে Crashlytics এ আপলোড করতে পারে।
অ্যান্ড্রয়েড
আপনার নির্ভরতা কনফিগারেশন পরীক্ষা করুন
flutterfire configure কমান্ডটি আপনার প্রোজেক্টের গ্রেডল বিল্ড ফাইলগুলিতে প্রয়োজনীয় ডিপেন্ডেন্সিগুলি যোগ করার চেষ্টা করে। এই ডিপেন্ডেন্সিগুলি ছাড়া, অবফাসকেশন চালু থাকলে 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'
নিশ্চিত করুন যে আপনি ফ্লাটার সিম্বল আপলোড করার জন্য CLI ব্যবহার করছেন (যদি --split-debug-info ফ্ল্যাগটি ব্যবহার করে থাকেন)।
আপনার ফ্লাটার প্রজেক্টে যদি --split-debug-info ফ্ল্যাগ (এবং ঐচ্ছিকভাবে --obfuscate ফ্ল্যাগও) ব্যবহৃত হয়, তাহলে আপনার অ্যাপের পাঠযোগ্য স্ট্যাক ট্রেস দেখানোর জন্য অতিরিক্ত কিছু পদক্ষেপের প্রয়োজন হবে।
ফ্লাটার ডিবাগ সিম্বল আপলোড করতে Firebase সিএলআই (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ভ্যালুটি; অথবাFirebase কনসোলে, আপনার প্রজেক্ট সেটিংসে যান। 'Your apps' কার্ডে গিয়ে, কাঙ্ক্ষিত Firebase অ্যাপটির অ্যাপ আইডি খুঁজে বের করতে সেটিতে ক্লিক করুন।
PATH/TO /symbols: অ্যাপ্লিকেশনটি বিল্ড করার সময় আপনি--split-debug-infoফ্ল্যাগে যে ডিরেক্টরিটি পাস করেন, এটি সেই একই ডিরেক্টরি।
সমস্যা অব্যাহত থাকলে, অস্পষ্ট রিপোর্টগুলির সমস্যা সমাধানের জন্য অ্যান্ড্রয়েড-নির্দিষ্ট নির্দেশিকাটি দেখুন।