এই পৃষ্ঠাটি সমস্যা সমাধানের সহায়তা এবং Crashlytics ব্যবহার সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নের উত্তর প্রদান করে। আপনি যা খুঁজছেন তা যদি খুঁজে না পান বা অতিরিক্ত সাহায্যের প্রয়োজন হয়, তাহলে Firebase সহায়তার সাথে যোগাযোগ করুন।
সাধারণ সমস্যা সমাধান/প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
Firebase কনসোলে আপনার Issue টেবিলে তালিকাভুক্ত সমস্যাগুলির জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। এখানে কেন!
২০২৩ সালের গোড়ার দিকে, আমরা ইভেন্টগুলিকে গ্রুপ করার জন্য একটি উন্নত বিশ্লেষণ ইঞ্জিন, সেইসাথে একটি আপডেটেড ডিজাইন এবং নতুন ইস্যুগুলির জন্য কিছু উন্নত বৈশিষ্ট্য (যেমন ভেরিয়েন্ট!) চালু করেছি। সমস্ত বিবরণের জন্য আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন, তবে হাইলাইটগুলির জন্য আপনি নীচে পড়তে পারেন।
Crashlytics আপনার অ্যাপের সমস্ত ইভেন্ট (যেমন ক্র্যাশ, নন-ফ্যাটাল এবং ANR) বিশ্লেষণ করে এবং ইস্যু নামক ইভেন্টের গ্রুপ তৈরি করে — একটি ইস্যুর সমস্ত ইভেন্টের ব্যর্থতার একটি সাধারণ বিন্দু থাকে।
এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিক বিবেচনা করে, যার মধ্যে রয়েছে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটি ধরণের বৈশিষ্ট্য।
তবে, এই ইভেন্ট গ্রুপের মধ্যে, ব্যর্থতার দিকে পরিচালিত স্ট্যাক ট্রেসগুলি ভিন্ন হতে পারে। একটি ভিন্ন স্ট্যাক ট্রেস একটি ভিন্ন মূল কারণকে বোঝাতে পারে। একটি সমস্যার মধ্যে এই সম্ভাব্য পার্থক্যটি উপস্থাপন করার জন্য, আমরা এখন সমস্যার মধ্যে ভেরিয়েন্ট তৈরি করি - প্রতিটি ভেরিয়েন্ট হল একটি সমস্যার ইভেন্টগুলির একটি উপ-গ্রুপ যার একই ব্যর্থতা বিন্দু এবং একই রকম স্ট্যাক ট্রেস রয়েছে। ভেরিয়েন্টগুলির সাহায্যে, আপনি একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেসগুলি ডিবাগ করতে পারেন এবং নির্ধারণ করতে পারেন যে বিভিন্ন মূল কারণ ব্যর্থতার দিকে পরিচালিত করছে কিনা।
এই উন্নতিগুলির সাথে আপনি যা অভিজ্ঞতা পাবেন তা এখানে:
সমস্যা সারির মধ্যে পুনর্নির্মিত মেটাডেটা দেখানো হয়েছে
আপনার অ্যাপে সমস্যাগুলি বোঝা এবং বিচার করা এখন আরও সহজ।কম ডুপ্লিকেট সমস্যা
লাইন নম্বর পরিবর্তনের ফলে নতুন কোনও সমস্যা হয় না।বিভিন্ন মূল কারণ সহ জটিল সমস্যাগুলির সহজে ডিবাগিং
কোনও সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেস ডিবাগ করতে ভেরিয়েন্ট ব্যবহার করুন।আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
একটি নতুন সমস্যা আসলে একটি নতুন বাগের প্রতিনিধিত্ব করে।আরও শক্তিশালী অনুসন্ধান
প্রতিটি ইস্যুতে আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরণ এবং প্যাকেজের নাম।
এই উন্নতিগুলি কীভাবে কার্যকর হচ্ছে তা এখানে দেওয়া হল:
যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্ট পাব, তখন আমরা পরীক্ষা করব যে সেগুলি বিদ্যমান কোনও সমস্যার সাথে মেলে কিনা।
যদি কোনও মিল না থাকে, তাহলে আমরা স্বয়ংক্রিয়ভাবে ইভেন্টে আমাদের আরও স্মার্ট ইভেন্ট-গ্রুপিং অ্যালগরিদম প্রয়োগ করব এবং পুনর্নির্মিত মেটাডেটা ডিজাইনের সাথে একটি নতুন সমস্যা তৈরি করব।
আমাদের ইভেন্ট গ্রুপিং-এ এটিই প্রথম বড় আপডেট। যদি আপনার কোন প্রতিক্রিয়া থাকে বা কোন সমস্যার সম্মুখীন হন, তাহলে অনুগ্রহ করে একটি প্রতিবেদন দাখিল করে আমাদের জানান।
যদি আপনি ব্রেডক্রাম্ব লগ দেখতে না পান, তাহলে আমরা আপনাকে Google Analytics এর জন্য আপনার অ্যাপের কনফিগারেশন পরীক্ষা করার পরামর্শ দিচ্ছি। নিশ্চিত করুন যে আপনি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করছেন:
আপনি আপনার Firebase প্রকল্পে Google Analytics সক্ষম করেছেন ।
আপনি Google Analytics এর জন্য ডেটা শেয়ারিং সক্ষম করেছেন। আপনার Analytics ডেটা শেয়ারিং সেটিংস পরিচালনা করুন বিভাগে এই সেটিং সম্পর্কে আরও জানুন।
তুমি করেছোআপনার অ্যাপে। এই SDKটি Crashlytics SDK এর সাথে যোগ করতে হবে।
তুমি ব্যবহার করছোআপনার অ্যাপে ব্যবহৃত সমস্ত পণ্যের জন্য।
যদি আপনি বেগের সতর্কতা দেখতে না পান, তাহলে নিশ্চিত করুন যে আপনি ব্যবহার করছেন
যদি আপনি ক্র্যাশ-মুক্ত মেট্রিক্স (যেমন ক্র্যাশ-মুক্ত ব্যবহারকারী এবং সেশন) দেখতে না পান অথবা অবিশ্বস্ত মেট্রিক্স দেখতে না পান, তাহলে নিম্নলিখিতগুলি পরীক্ষা করুন:
নিশ্চিত করুন যে আপনি ব্যবহার করছেন
নিশ্চিত করুন যে আপনার ডেটা সংগ্রহের সেটিংস আপনার ক্র্যাশ-মুক্ত মেট্রিক্সের গুণমানের উপর প্রভাব ফেলছে না:
যদি আপনি স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করেন , তাহলে ক্র্যাশ তথ্য কেবলমাত্র সেই ব্যবহারকারীদের কাছ থেকে Crashlytics এ পাঠানো যাবে যারা স্পষ্টভাবে ডেটা সংগ্রহে অংশগ্রহণ করেছেন। সুতরাং, ক্র্যাশ-মুক্ত মেট্রিক্সের নির্ভুলতা প্রভাবিত হবে কারণ Crashlytics শুধুমাত্র এই অপ্ট-ইন করা ব্যবহারকারীদের কাছ থেকে ক্র্যাশ তথ্য থাকে (আপনার সমস্ত ব্যবহারকারীর পরিবর্তে)। এর অর্থ হল আপনার ক্র্যাশ-মুক্ত মেট্রিক্স কম নির্ভরযোগ্য এবং আপনার অ্যাপের সামগ্রিক স্থিতিশীলতার প্রতিফলন কম হতে পারে।
যদি আপনার স্বয়ংক্রিয় ডেটা সংগ্রহ অক্ষম থাকে, তাহলে আপনি Crashlytics এ ডিভাইসে ক্যাশ করা রিপোর্ট পাঠাতে
sendUnsentReportsব্যবহার করতে পারেন। এই পদ্ধতি ব্যবহার করলে Crashlytics এ ক্র্যাশ ডেটা পাঠানো হবে, কিন্তু সেশন ডেটা পাঠানো হবে না যার ফলে কনসোল চার্টগুলি ক্র্যাশ-মুক্ত মেট্রিক্সের জন্য কম বা শূন্য মান দেখাবে।
ক্র্যাশ-মুক্ত মেট্রিক্স বুঝুন দেখুন।
নোট প্রকল্পের সদস্যদের প্রশ্ন, স্ট্যাটাস আপডেট ইত্যাদির মাধ্যমে নির্দিষ্ট বিষয়ে মন্তব্য করার সুযোগ দেয়।
যখন কোনও প্রকল্প সদস্য একটি নোট পোস্ট করেন, তখন এটি তাদের Google অ্যাকাউন্টের ইমেল ঠিকানা দিয়ে লেবেল করা হয়। এই ইমেল ঠিকানাটি, নোটের সাথে, সমস্ত প্রকল্প সদস্যদের কাছে দৃশ্যমান হবে যাদের নোটটি দেখার অ্যাক্সেস রয়েছে।
নোট দেখতে, লিখতে এবং মুছে ফেলার জন্য প্রয়োজনীয় অ্যাক্সেসের বর্ণনা নিচে দেওয়া হল:
নিম্নলিখিত যেকোনো ভূমিকা সম্পন্ন প্রকল্পের সদস্যরা বিদ্যমান নোটগুলি দেখতে এবং মুছে ফেলতে এবং কোনও বিষয়ে নতুন নোট লিখতে পারবেন।
- প্রকল্পের মালিক বা সম্পাদক , ফায়ারবেস অ্যাডমিন , কোয়ালিটি অ্যাডমিন , অথবা ক্র্যাশলিটিক্স অ্যাডমিন
নিম্নলিখিত যেকোনো ভূমিকায় থাকা প্রকল্পের সদস্যরা কোনও বিষয়ে পোস্ট করা নোট দেখতে পারবেন, কিন্তু তারা কোনও নোট মুছতে বা লিখতে পারবেন না।
- প্রজেক্ট ভিউয়ার , ফায়ারবেস ভিউয়ার , কোয়ালিটি ভিউয়ার , অথবা ক্র্যাশলিটিক্স ভিউয়ার
ইন্টিগ্রেশন
যদি আপনার প্রোজেক্টে Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করা হয়, তাহলে সম্ভবত ক্র্যাশ রিপোর্টাররা ব্যতিক্রম হ্যান্ডলার নিবন্ধনের সময় হস্তক্ষেপ করছে। সমস্যাটি সমাধানের জন্য, disableSDKCrashReporting কল করে Mobile Ads SDK-তে ক্র্যাশ রিপোর্টিং বন্ধ করুন।
Crashlytics BigQuery এর সাথে লিঙ্ক করার পর, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।
প্ল্যাটফর্ম সাপোর্ট
পিছিয়ে পড়া সমস্যা
আপনি যখন আগে সমস্যাটি বন্ধ করে দিয়েছিলেন তখন একটি সমস্যা রিগ্রেশন হয়েছিল কিন্তু Crashlytics একটি নতুন রিপোর্ট পেয়েছে যে সমস্যাটি আবার ঘটেছে। Crashlytics স্বয়ংক্রিয়ভাবে এই রিগ্রেশন করা সমস্যাগুলি পুনরায় খুলবে যাতে আপনি আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সেগুলি সমাধান করতে পারেন।
এখানে একটি উদাহরণ দেওয়া হল যা ব্যাখ্যা করে যে কীভাবে Crashlytics একটি সমস্যাকে রিগ্রেশন হিসেবে শ্রেণীবদ্ধ করে:
- প্রথমবারের মতো, Crashlytics Crash "A" সম্পর্কে একটি ক্র্যাশ রিপোর্ট পেয়েছে। Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা (ইস্যু "A") খোলে।
- আপনি দ্রুত এই বাগটি ঠিক করুন, "A" সমস্যাটি বন্ধ করুন, এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন।
- আপনি সমস্যাটি বন্ধ করার পরে, Crashlytics "A" ইস্যু সম্পর্কে আরেকটি প্রতিবেদন পায়।
- যদি রিপোর্টটি এমন কোনও অ্যাপ ভার্সন থেকে আসে যা Crashlytics আপনার সমস্যাটি বন্ধ করার সময় জানত (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে রিগ্রেসড বলে বিবেচনা করবে না। সমস্যাটি বন্ধ থাকবে।
- যদি রিপোর্টটি এমন কোনও অ্যাপ ভার্সন থেকে আসে যা Crashlytics আপনার সমস্যাটি বন্ধ করার সময় জানত না (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য কোনও ক্র্যাশ রিপোর্ট পাঠায়নি ), তাহলে Crashlytics সমস্যাটিকে পিছিয়ে গেছে বলে মনে করবে এবং সমস্যাটি আবার খুলবে।
যখন কোনও সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন ডিটেকশন অ্যালার্ট পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি পুনরায় খুলেছে। আমাদের রিগ্রেশন অ্যালগরিদমের কারণে যদি আপনি কোনও সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটি বন্ধ করার পরিবর্তে "মিউট" করুন।
যদি কোনও প্রতিবেদন এমন কোনও পুরানো অ্যাপ সংস্করণ থেকে আসে যা সমস্যাটি বন্ধ করার সময় কখনও কোনও ক্র্যাশ রিপোর্ট পাঠায়নি, তাহলে Crashlytics সমস্যাটিকে পিছিয়ে গেছে বলে মনে করে এবং সমস্যাটি পুনরায় খুলবে।
এই পরিস্থিতি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে: আপনি একটি বাগ সংশোধন করেছেন এবং আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করেছেন, কিন্তু আপনার এখনও পুরানো সংস্করণগুলিতে এমন ব্যবহারকারী আছেন যাদের বাগ সংশোধন করা হয়নি। যদি, দৈবক্রমে, সমস্যাটি বন্ধ করার সময় সেই পুরানো সংস্করণগুলির মধ্যে একটি কখনও কোনও ক্র্যাশ রিপোর্ট না পাঠায় এবং সেই ব্যবহারকারীরা বাগটির সম্মুখীন হতে শুরু করে, তাহলে সেই ক্র্যাশ রিপোর্টগুলি একটি রিগ্রেসড সমস্যা তৈরি করবে।
আমাদের রিগ্রেশন অ্যালগরিদমের কারণে যদি আপনি কোনও সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটি বন্ধ করার পরিবর্তে "মিউট" করুন।