এই পৃষ্ঠাটি ক্র্যাশলিটিক্স ব্যবহার করার বিষয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নের সমস্যা সমাধানে সহায়তা এবং উত্তর প্রদান করে। আপনি যা খুঁজছেন তা খুঁজে না পেলে বা অতিরিক্ত সাহায্যের প্রয়োজন হলে, Firebase সহায়তার সাথে যোগাযোগ করুন।
সাধারণ সমস্যা সমাধান/FAQ
আপনি যদি ক্র্যাশ-মুক্ত ব্যবহারকারী, ব্রেডক্রাম্ব লগ এবং/অথবা বেগ সতর্কতা না দেখতে পান, তাহলে আমরা Google Analytics-এর জন্য আপনার অ্যাপের কনফিগারেশন চেক করার পরামর্শ দিই।
নিশ্চিত করুন যে আপনি আপনার Firebase প্রকল্পে Google Analytics সক্ষম করেছেন ৷
Firebase কনসোলের ইন্টিগ্রেশন > Google Analytics পৃষ্ঠায় Google Analytics-এর জন্য ডেটা শেয়ারিং সক্ষম করা আছে কিনা তা নিশ্চিত করুন। মনে রাখবেন যে ডেটা শেয়ারিং সেটিংস Firebase কনসোলে প্রদর্শিত হয় কিন্তু Google Analytics কনসোলে পরিচালিত হয়।
Firebase Crashlytics SDK ছাড়াও, নিশ্চিত করুন যে আপনি আপনার অ্যাপে ( iOS+ | Android ) Google Analytics-এর জন্য Firebase SDK যোগ করেছেন।
নিশ্চিত করুন যে আপনি আপনার সমস্ত Firebase SDK-এর জন্য সর্বশেষ সংস্করণ ব্যবহার করছেন ( iOS+ | Android )৷
বিশেষ করে দেখে নিন যে আপনি Google Analytics-এর জন্য Firebase SDK-এর ন্যূনতম নিম্নলিখিত সংস্করণগুলি ব্যবহার করছেন:iOS+ — v6.3.1+ (v8.9.0+ macOS এবং tvOS এর জন্য) | Android — v17.2.3+ (BoM v24.7.1+) ।
Firebase কনসোলে আপনার ইস্যু টেবিলে তালিকাভুক্ত সমস্যার জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনি আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। কারণটা এখানে!
2023 সালের গোড়ার দিকে, আমরা ইভেন্টগুলিকে গ্রুপ করার জন্য একটি উন্নত বিশ্লেষণ ইঞ্জিনের পাশাপাশি একটি আপডেট করা ডিজাইন এবং নতুন সমস্যার জন্য কিছু উন্নত বৈশিষ্ট্য নিয়ে এসেছি (যেমন বৈকল্পিক!)। সমস্ত বিবরণের জন্য আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন, তবে আপনি হাইলাইটগুলির জন্য নীচে পড়তে পারেন।
Crashlytics আপনার অ্যাপ থেকে সমস্ত ইভেন্ট বিশ্লেষণ করে (যেমন ক্র্যাশ, নন-ফেটাল, এবং ANR) এবং ইভেন্টের গ্রুপ তৈরি করে যাকে সমস্যা বলা হয় — একটি ইস্যুতে সমস্ত ইভেন্টের ব্যর্থতার একটি সাধারণ পয়েন্ট থাকে।
এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিককে দেখে, যার মধ্যে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটির ধরন বৈশিষ্ট্যগুলি রয়েছে৷
যাইহোক, ইভেন্টের এই গ্রুপের মধ্যে, ব্যর্থতার দিকে পরিচালিত স্ট্যাক ট্রেসগুলি ভিন্ন হতে পারে। একটি ভিন্ন স্ট্যাক ট্রেস একটি ভিন্ন মূল কারণ বোঝাতে পারে। একটি ইস্যুতে এই সম্ভাব্য পার্থক্যটি উপস্থাপন করার জন্য, আমরা এখন সমস্যার মধ্যে ভেরিয়েন্ট তৈরি করি - প্রতিটি ভেরিয়েন্ট হল একটি ইস্যুতে ইভেন্টগুলির একটি সাব-গ্রুপ যার একই ব্যর্থতা পয়েন্ট এবং একই স্ট্যাক ট্রেস রয়েছে। ভেরিয়েন্টের সাহায্যে, আপনি একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেসগুলি ডিবাগ করতে পারেন এবং বিভিন্ন মূল কারণগুলি ব্যর্থতার দিকে নিয়ে যাচ্ছে কিনা তা নির্ধারণ করতে পারেন।
এই উন্নতিগুলির সাথে আপনি যা অনুভব করবেন তা এখানে:
সংশোধিত মেটাডেটা ইস্যু সারির মধ্যে প্রদর্শিত হয়
আপনার অ্যাপে সমস্যাগুলি বোঝা এবং ট্রাইজ করা এখন সহজ।কম ডুপ্লিকেট সমস্যা
একটি লাইন নম্বর পরিবর্তনের ফলে একটি নতুন সমস্যা হয় না।বিভিন্ন মূল কারণ সহ জটিল সমস্যার সহজ ডিবাগিং
একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেস ডিবাগ করতে ভেরিয়েন্ট ব্যবহার করুন।আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
একটি নতুন সমস্যা আসলে একটি নতুন বাগ প্রতিনিধিত্ব করে।আরো শক্তিশালী অনুসন্ধান
প্রতিটি সমস্যায় আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরন এবং প্যাকেজের নাম।
এই উন্নতিগুলি কীভাবে ঘটছে তা এখানে:
যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্টগুলি পাই, তখন আমরা তা একটি বিদ্যমান সমস্যার সাথে মেলে কিনা তা পরীক্ষা করব।
যদি কোন মিল না থাকে, আমরা স্বয়ংক্রিয়ভাবে ইভেন্টে আমাদের স্মার্ট ইভেন্ট-গ্রুপিং অ্যালগরিদম প্রয়োগ করব এবং পরিমার্জিত মেটাডেটা ডিজাইনের সাথে একটি নতুন সমস্যা তৈরি করব।
এটিই প্রথম বড় আপডেট যা আমরা আমাদের ইভেন্ট গ্রুপিংয়ে তৈরি করছি। আপনার যদি প্রতিক্রিয়া থাকে বা কোনো সমস্যার সম্মুখীন হন, তাহলে অনুগ্রহ করে একটি প্রতিবেদন দাখিল করে আমাদের জানান।
ক্র্যাশ-মুক্ত মানটি এমন ব্যবহারকারীদের শতাংশের প্রতিনিধিত্ব করে যারা আপনার অ্যাপের সাথে জড়িত কিন্তু একটি নির্দিষ্ট সময়ের মধ্যে ক্র্যাশ হয়নি ।
ক্র্যাশ-মুক্ত ব্যবহারকারীর শতাংশ গণনা করার সূত্রটি এখানে। এর ইনপুট মান Google Analytics দ্বারা প্রদান করা হয়.
CRASH_FREE_USERS_PERCENTAGE = 1 - ( CRASHED_USERS / ALL_USERS ) x 100
যখন একটি ক্র্যাশ ঘটে, তখন Google Analytics একটি
app_exception
ইভেন্ট টাইপ পাঠায় এবং CRASHED_USERS সেই ইভেন্ট প্রকারের সাথে যুক্ত ব্যবহারকারীর সংখ্যা উপস্থাপন করে।Crashlytics ড্যাশবোর্ডের উপরের-ডানদিকে ড্রপ-ডাউন মেনু থেকে আপনি যে সময়কালে নির্বাচন করেছেন সেই সময়ের মধ্যে আপনার অ্যাপের সাথে জড়িত মোট ব্যবহারকারীদের ALL_USERS প্রতিনিধিত্ব করে।
ক্র্যাশ-মুক্ত ব্যবহারকারীর শতাংশ সময়ের সাথে একটি সমষ্টি , গড় নয়।
উদাহরণস্বরূপ, কল্পনা করুন আপনার অ্যাপের তিনজন ব্যবহারকারী আছে; আমরা তাদের ব্যবহারকারী A, User B, এবং User C বলব। নিচের সারণীটি দেখায় যে কোন ব্যবহারকারীরা প্রতিদিন আপনার অ্যাপের সাথে জড়িত ছিলেন এবং সেই দিন কোন ব্যবহারকারীর ক্র্যাশ হয়েছিল:
সোমবার | মঙ্গলবার | বুধবার | |
---|---|---|---|
আপনার অ্যাপের সাথে জড়িত ব্যবহারকারীরা | A, B, C | A, B, C | ক, বি |
একটি ক্র্যাশ হয়েছে যে ব্যবহারকারী | গ | খ | ক |
বুধবার, আপনার ক্র্যাশ-মুক্ত ব্যবহারকারীর শতাংশ হল 50% (2 জনের মধ্যে 1 জন ব্যবহারকারী ক্র্যাশ-মুক্ত ছিল)।
আপনার দুইজন ব্যবহারকারী বুধবার আপনার অ্যাপের সাথে জড়িত, কিন্তু তাদের মধ্যে শুধুমাত্র একজনের (ব্যবহারকারী B) কোনো ক্র্যাশ হয়নি।গত 2 দিনের জন্য, আপনার ক্র্যাশ-মুক্ত ব্যবহারকারীর শতাংশ হল 33.3% (3 জনের মধ্যে 1 জন ব্যবহারকারী ক্র্যাশ-মুক্ত ছিল)।
আপনার তিনজন ব্যবহারকারী গত দুই দিনে আপনার অ্যাপের সাথে জড়িত, কিন্তু তাদের মধ্যে শুধুমাত্র একজন (ব্যবহারকারী সি) কোনো ক্র্যাশ হয়নি।গত 3 দিনের জন্য, আপনার ক্র্যাশ-মুক্ত ব্যবহারকারীর শতাংশ হল 0% (3টির মধ্যে 0 জন ব্যবহারকারী ক্র্যাশ-মুক্ত ছিল)।
আপনার তিনজন ব্যবহারকারী গত তিন দিনে আপনার অ্যাপের সাথে জড়িত, কিন্তু তাদের মধ্যে শূন্যের কোনো ক্র্যাশ হয়নি।
ক্র্যাশ-মুক্ত ব্যবহারকারীর মান বিভিন্ন সময়ের সাথে তুলনা করা উচিত নয়। একটি একক ব্যবহারকারীর ক্র্যাশের সম্মুখীন হওয়ার সম্ভাবনা যতবার তারা আপনার অ্যাপ ব্যবহার করে ততবার বৃদ্ধি পায়, তাই ক্র্যাশ-মুক্ত ব্যবহারকারীদের মান দীর্ঘ সময়ের জন্য ছোট হতে পারে।
নোটগুলি প্রকল্পের সদস্যদের প্রশ্ন, স্ট্যাটাস আপডেট ইত্যাদির সাথে নির্দিষ্ট বিষয়ে মন্তব্য করার অনুমতি দেয়।
যখন কোনও প্রকল্প সদস্য একটি নোট পোস্ট করে, তখন এটি তাদের Google অ্যাকাউন্টের ইমেলের সাথে লেবেল করা হয়। এই ইমেল ঠিকানাটি নোটের সাথে, নোটটি দেখার অ্যাক্সেস সহ সমস্ত প্রকল্প সদস্যদের কাছে দৃশ্যমান।
নিম্নলিখিতগুলি নোটগুলি দেখতে, লিখতে এবং মুছতে প্রয়োজনীয় অ্যাক্সেস বর্ণনা করে:
নিম্নলিখিত যেকোনও ভূমিকা সহ প্রকল্প সদস্যরা বিদ্যমান নোটগুলি দেখতে এবং মুছে ফেলতে পারেন এবং একটি সমস্যায় নতুন নোট লিখতে পারেন।
- প্রকল্পের মালিক বা সম্পাদক , ফায়ারবেস অ্যাডমিন , কোয়ালিটি অ্যাডমিন বা ক্র্যাশলাইটিক্স অ্যাডমিন
নিম্নলিখিত ভূমিকাগুলির মধ্যে যেকোনও প্রকল্পের সদস্যরা একটি ইস্যুতে পোস্ট করা নোটগুলি দেখতে পারেন, কিন্তু তারা একটি নোট মুছতে বা লিখতে পারবেন না।
- প্রজেক্ট ভিউয়ার , ফায়ারবেস ভিউয়ার , কোয়ালিটি ভিউয়ার বা ক্র্যাশলাইটিক্স ভিউয়ার
ইন্টিগ্রেশন
আপনার প্রোজেক্ট যদি Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করে, তাহলে ব্যতিক্রম হ্যান্ডলারদের নিবন্ধন করার সময় ক্র্যাশ রিপোর্টাররা হস্তক্ষেপ করছে। সমস্যা সমাধানের জন্য, disableSDKCrashReporting
কল করে মোবাইল বিজ্ঞাপন SDK-এ ক্র্যাশ রিপোর্টিং বন্ধ করুন।
আপনি BigQuery-এর সাথে Crashlytics লিঙ্ক করার পরে, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।
প্ল্যাটফর্ম সমর্থন
প্রত্যাবর্তিত সমস্যা
আপনি পূর্বে সমস্যাটি বন্ধ করার সময় একটি সমস্যাটি রিগ্রেশন হয়েছে কিন্তু Crashlytics একটি নতুন প্রতিবেদন পায় যে সমস্যাটি আবার ঘটেছে। Crashlytics স্বয়ংক্রিয়ভাবে এই প্রত্যাবর্তিত সমস্যাগুলি পুনরায় খোলে যাতে আপনি সেগুলিকে আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সমাধান করতে পারেন।
এখানে একটি উদাহরণের দৃশ্য যা ব্যাখ্যা করে যে কীভাবে ক্র্যাশলিটিক্স একটি সমস্যাকে রিগ্রেশন হিসাবে শ্রেণীবদ্ধ করে:
- প্রথমবারের মতো, Crashlytics ক্র্যাশ "A" সম্পর্কে একটি ক্র্যাশ রিপোর্ট পায়৷ Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা খোলে (ইস্যু "A")।
- আপনি এই বাগটি দ্রুত ঠিক করুন, সমস্যা "A" বন্ধ করুন এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন৷
- আপনি সমস্যাটি বন্ধ করার পরে Crashlytics ইস্যু "A" সম্পর্কে আরেকটি প্রতিবেদন পায়।
- প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত যে আপনি যখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন হিসাবে বিবেচনা করবে না। বিষয়টি বন্ধ থাকবে।
- রিপোর্টটি যদি এমন একটি অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত না যে আপনি কখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য কোনও ক্র্যাশ রিপোর্ট পাঠায়নি ), তাহলে Crashlytics বিবেচনা করে যে সমস্যাটি প্রত্যাবর্তিত হয়েছে এবং সমস্যাটি আবার খুলবে .
যখন একটি সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন শনাক্তকরণ সতর্কতা পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি আবার খুলেছে। আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনো সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটিকে বন্ধ করার পরিবর্তে "নিঃশব্দ" করুন।
যদি কোনও রিপোর্ট কোনও পুরানো অ্যাপ সংস্করণ থেকে হয় যেটি আপনি সমস্যাটি বন্ধ করার সময় কোনও ক্র্যাশ রিপোর্ট পাঠাননি, তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।
এই পরিস্থিতি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে: আপনি একটি বাগ সংশোধন করেছেন এবং আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করেছেন, কিন্তু আপনার কাছে এখনও বাগ সংশোধন ছাড়াই পুরানো সংস্করণে ব্যবহারকারীরা আছে৷ যদি, ঘটনাক্রমে, আপনি সমস্যাটি বন্ধ করার সময় সেই পুরানো সংস্করণগুলির মধ্যে একটি কখনই কোনও ক্র্যাশ রিপোর্ট না পাঠায়, এবং সেই ব্যবহারকারীরা বাগটির সম্মুখীন হতে শুরু করে, তাহলে সেই ক্র্যাশ রিপোর্টগুলি একটি প্রত্যাবর্তিত সমস্যাকে ট্রিগার করবে৷
আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনো সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটিকে বন্ধ করার পরিবর্তে "নিঃশব্দ" করুন।