Crashlytics সমস্যা সমাধান এবং FAQ


এই পৃষ্ঠাটি Crashlytics ব্যবহার করার বিষয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নের সমস্যা সমাধানে সহায়তা এবং উত্তর প্রদান করে। আপনি যা খুঁজছেন তা খুঁজে না পেলে বা অতিরিক্ত সাহায্যের প্রয়োজন হলে, Firebase সহায়তার সাথে যোগাযোগ করুন।

সাধারণ সমস্যা সমাধান/FAQ

Firebase কনসোলে আপনার ইস্যু টেবিলে তালিকাভুক্ত সমস্যার জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনি আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। এখানে কেন!

2023 সালের গোড়ার দিকে, আমরা ইভেন্টগুলিকে গ্রুপ করার জন্য একটি উন্নত বিশ্লেষণ ইঞ্জিনের পাশাপাশি একটি আপডেট করা ডিজাইন এবং নতুন সমস্যাগুলির জন্য কিছু উন্নত বৈশিষ্ট্য নিয়ে এসেছি (যেমন বৈকল্পিক!)। সমস্ত বিবরণের জন্য আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন, তবে আপনি হাইলাইটগুলির জন্য নীচে পড়তে পারেন।

Crashlytics আপনার অ্যাপ থেকে সমস্ত ইভেন্ট বিশ্লেষণ করে (যেমন ক্র্যাশ, নন-ফেটাল, এবং ANR) এবং ইভেন্টের গ্রুপ তৈরি করে যাকে সমস্যা বলা হয় — একটি ইস্যুতে সমস্ত ইভেন্টের ব্যর্থতার একটি সাধারণ পয়েন্ট থাকে।

এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিককে দেখে, যার মধ্যে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটির ধরন বৈশিষ্ট্যগুলি রয়েছে৷

যাইহোক, ইভেন্টের এই গ্রুপের মধ্যে, ব্যর্থতার দিকে পরিচালিত স্ট্যাক ট্রেসগুলি ভিন্ন হতে পারে। একটি ভিন্ন স্ট্যাক ট্রেস একটি ভিন্ন মূল কারণ বোঝাতে পারে। একটি ইস্যুতে এই সম্ভাব্য পার্থক্যটি উপস্থাপন করার জন্য, আমরা এখন সমস্যার মধ্যে ভেরিয়েন্ট তৈরি করি - প্রতিটি ভেরিয়েন্ট হল একটি ইস্যুতে ইভেন্টগুলির একটি সাব-গ্রুপ যার একই ব্যর্থতা পয়েন্ট এবং একই স্ট্যাক ট্রেস রয়েছে। ভেরিয়েন্টের সাহায্যে, আপনি একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেসগুলি ডিবাগ করতে পারেন এবং বিভিন্ন মূল কারণগুলি ব্যর্থতার দিকে নিয়ে যাচ্ছে কিনা তা নির্ধারণ করতে পারেন।

এই উন্নতিগুলির সাথে আপনি যা অনুভব করবেন তা এখানে:

  • সংশোধিত মেটাডেটা ইস্যু সারির মধ্যে প্রদর্শিত হয়
    আপনার অ্যাপে সমস্যাগুলি বোঝা এবং ট্রাইজ করা এখন সহজ।

  • কম ডুপ্লিকেট সমস্যা
    একটি লাইন নম্বর পরিবর্তনের ফলে একটি নতুন সমস্যা হয় না।

  • বিভিন্ন মূল কারণ সহ জটিল সমস্যার সহজ ডিবাগিং
    একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেস ডিবাগ করতে ভেরিয়েন্ট ব্যবহার করুন।

  • আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
    একটি নতুন সমস্যা আসলে একটি নতুন বাগ প্রতিনিধিত্ব করে।

  • আরো শক্তিশালী অনুসন্ধান
    প্রতিটি সমস্যায় আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরন এবং প্যাকেজের নাম।

এই উন্নতিগুলি কীভাবে ঘটছে তা এখানে:

  • যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্টগুলি পাই, তখন আমরা তা একটি বিদ্যমান সমস্যার সাথে মেলে কিনা তা পরীক্ষা করব।

  • যদি কোন মিল না থাকে, আমরা স্বয়ংক্রিয়ভাবে ইভেন্টে আমাদের স্মার্ট ইভেন্ট-গ্রুপিং অ্যালগরিদম প্রয়োগ করব এবং পরিমার্জিত মেটাডেটা ডিজাইনের সাথে একটি নতুন সমস্যা তৈরি করব।

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

আপনি যদি ব্রেডক্রাম্ব লগ দেখতে না পান, তাহলে আমরা Google Analytics জন্য আপনার অ্যাপের কনফিগারেশন চেক করার পরামর্শ দিই। আপনি নিম্নলিখিত প্রয়োজনীয়তা পূরণ নিশ্চিত করুন:

আপনি যদি বেগের সতর্কতা দেখতে না পান তবে নিশ্চিত করুন যে আপনি ব্যবহার করছেনCrashlytics SDK v10.8.0+।

আপনি যদি ক্র্যাশ-মুক্ত মেট্রিক্স (যেমন ক্র্যাশ-মুক্ত ব্যবহারকারী এবং সেশন) দেখতে না পান বা অবিশ্বস্ত মেট্রিক না দেখেন তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

  • আপনি ব্যবহার করছেন তা নিশ্চিত করুনCrashlytics SDK v10.8.0+।

  • নিশ্চিত করুন যে আপনার ডেটা সংগ্রহের সেটিংস আপনার ক্র্যাশ-মুক্ত মেট্রিক্সের গুণমানকে প্রভাবিত করছে না:

    • আপনি যদি স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করেন , তবে ক্র্যাশ তথ্য শুধুমাত্র সেই ব্যবহারকারীদের কাছ থেকে Crashlytics এ পাঠানো যেতে পারে যারা স্পষ্টভাবে ডেটা সংগ্রহে নির্বাচন করেছেন। এইভাবে, ক্র্যাশ-মুক্ত মেট্রিক্সের নির্ভুলতা প্রভাবিত হবে কারণ Crashlytics শুধুমাত্র এই অপ্ট-ইন ব্যবহারকারীদের (আপনার সমস্ত ব্যবহারকারীর পরিবর্তে) থেকে ক্র্যাশ তথ্য রয়েছে। এর মানে হল যে আপনার ক্র্যাশ-মুক্ত মেট্রিকগুলি কম নির্ভরযোগ্য এবং আপনার অ্যাপের সামগ্রিক স্থিতিশীলতার কম প্রতিফলিত হতে পারে।

    • আপনার যদি স্বয়ংক্রিয় ডেটা সংগ্রহ অক্ষম থাকে, তাহলে আপনি Crashlytics এ ডিভাইসে ক্যাশে করা রিপোর্ট পাঠাতে sendUnsentReports ব্যবহার করতে পারেন। এই পদ্ধতিটি ব্যবহার করলে Crashlytics ক্র্যাশ ডেটা পাঠানো হবে, কিন্তু সেশন ডেটা নয় যার কারণে কনসোল চার্টগুলি ক্র্যাশ-মুক্ত মেট্রিক্সের জন্য কম বা শূন্য মান দেখায়৷

ক্র্যাশ-মুক্ত মেট্রিক্স বুঝুন দেখুন।

আপনার প্রকল্পের dSYM আপলোড করতে এবং ভার্বোস আউটপুট পেতে, নিম্নলিখিতগুলি পরীক্ষা করুন:

  1. আপনার প্রজেক্টের বিল্ড ফেজে Crashlytics রান স্ক্রিপ্ট রয়েছে তা নিশ্চিত করুন, যা এক্সকোডকে বিল্ড টাইমে আপনার প্রোজেক্টের dSYM গুলি আপলোড করতে দেয় (স্ক্রিপ্ট যোগ করার নির্দেশাবলীর জন্য Initializing Crashlytics পড়ুন)। আপনার প্রোজেক্ট আপডেট করার পর, জোর করে ক্র্যাশ করুন এবং নিশ্চিত করুন যে Crashlytics ড্যাশবোর্ডে ক্র্যাশ দেখা যাচ্ছে।

  2. আপনি যদি Firebase কনসোলে একটি "অনুপস্থিত dSYM" সতর্কতা দেখতে পান, তাহলে Xcode পরীক্ষা করে নিশ্চিত করুন যে এটি বিল্ডের জন্য সঠিকভাবে dSYM তৈরি করছে

  3. যদি Xcode সঠিকভাবে dSYMs তৈরি করে, এবং আপনি এখনও dSYMs অনুপস্থিত দেখতে পান, তাহলে সম্ভবত dSYMগুলি আপলোড করার সময় রান স্ক্রিপ্ট টুল আটকে যাচ্ছে। এই ক্ষেত্রে, নিম্নলিখিত প্রতিটি চেষ্টা করুন:

    • আপনি Crashlytics এর সর্বশেষ সংস্করণ ব্যবহার করছেন তা নিশ্চিত করুন।

    • অনুপস্থিত dSYM ফাইল ম্যানুয়ালি আপলোড করুন:

      • বিকল্প 1: অনুপস্থিত dSYM ফাইল ধারণকারী একটি জিপ সংরক্ষণাগার আপলোড করতে dSYMs ট্যাবে কনসোল-ভিত্তিক "টেনে আনুন" বিকল্পটি ব্যবহার করুন৷
      • বিকল্প 2: dSYM ট্যাবে প্রদত্ত UUID-এর জন্য অনুপস্থিত dSYM ফাইলগুলি আপলোড করতে upload-symbols স্ক্রিপ্ট ব্যবহার করুন।
  4. আপনি যদি অনুপস্থিত dSYM দেখতে থাকেন, বা আপলোডগুলি এখনও অসফল হয়, Firebase সহায়তার সাথে যোগাযোগ করুন এবং আপনার লগগুলি অন্তর্ভুক্ত করতে ভুলবেন না।

যদি আপনার স্ট্যাকের ট্রেসগুলি খারাপভাবে প্রতীকী বলে মনে হয় তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

  • যদি আপনার অ্যাপের লাইব্রেরির ফ্রেমে আপনার অ্যাপের কোডের রেফারেন্স না থাকে, তাহলে তা নিশ্চিত করুন -fomit-frame-pointer একটি সংকলন পতাকা হিসাবে সেট করা নেই।

  • আপনি যদি আপনার অ্যাপের লাইব্রেরির জন্য বেশ কয়েকটি (Missing) ফ্রেম দেখতে পান, তাহলে Firebase কনসোলের Crashlytics dSYMs ট্যাবে অনুপস্থিত (প্রভাবিত অ্যাপ সংস্করণের জন্য) তালিকাভুক্ত ঐচ্ছিক dSYM আছে কিনা তা পরীক্ষা করুন। যদি তাই হয়, এই পৃষ্ঠায় dSYM অনুপস্থিত/আপলোড হচ্ছে না প্রায়শই জিজ্ঞাসিত প্রশ্নাবলীতে "অনুপস্থিত dSYM সতর্কতা" সমস্যা সমাধানের পদক্ষেপটি অনুসরণ করুন৷ মনে রাখবেন যে এই dSYMগুলি আপলোড করা ইতিমধ্যে ঘটে যাওয়া ক্র্যাশগুলিকে প্রতীকী করবে না, তবে এটি ভবিষ্যতে ক্র্যাশগুলির জন্য প্রতীকীকরণ নিশ্চিত করতে সহায়তা করবে৷

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

যখন কোনও প্রকল্প সদস্য একটি নোট পোস্ট করে, তখন এটি তাদের Google অ্যাকাউন্টের ইমেলের সাথে লেবেল করা হয়। এই ইমেল ঠিকানাটি নোটের সাথে, নোটটি দেখার অ্যাক্সেস সহ সমস্ত প্রকল্প সদস্যদের কাছে দৃশ্যমান।

নিম্নলিখিতগুলি নোটগুলি দেখতে, লিখতে এবং মুছতে প্রয়োজনীয় অ্যাক্সেস বর্ণনা করে:

ইন্টিগ্রেশন

আপনার প্রোজেক্ট যদি Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করে, তাহলে ব্যতিক্রম হ্যান্ডলারদের নিবন্ধন করার সময় ক্র্যাশ রিপোর্টাররা হস্তক্ষেপ করছে। সমস্যা সমাধানের জন্য, disableSDKCrashReporting কল করে Mobile Ads SDK-এ ক্র্যাশ রিপোর্টিং বন্ধ করুন।

আপনি BigQuery-এর সাথে Crashlytics লিঙ্ক করার পরে, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।

প্ল্যাটফর্ম সমর্থন

হ্যাঁ, আপনি macOS এবং tvOS প্রকল্পগুলিতে Crashlytics প্রয়োগ করতে পারেন। Google Analytics এর জন্য Firebase SDK-এর v8.9.0+ অন্তর্ভুক্ত করা নিশ্চিত করুন যাতে Google Analytics (ক্র্যাশ-মুক্ত ব্যবহারকারী, সর্বশেষ প্রকাশ, বেগ সতর্কতা এবং ব্রেডক্রাম্ব লগ) দ্বারা সংগৃহীত মেট্রিক্সে ক্র্যাশগুলি অ্যাক্সেস করতে পারে।

আপনি এখন একটি একক ফায়ারবেস প্রজেক্টে একাধিক অ্যাপের ক্র্যাশ রিপোর্ট করতে পারেন, এমনকি যখন অ্যাপগুলি বিভিন্ন Apple প্ল্যাটফর্মের জন্য তৈরি করা হয় (যেমন, iOS, tvOS, এবং Mac ক্যাটালিস্ট)। পূর্বে, যদি একই বান্ডেল আইডি থাকে তবে আপনাকে পৃথক ফায়ারবেস প্রকল্পগুলিতে অ্যাপগুলিকে আলাদা করতে হবে।

প্রত্যাবর্তিত সমস্যা

আপনি পূর্বে সমস্যাটি বন্ধ করার সময় একটি সমস্যাটি রিগ্রেশন হয়েছে কিন্তু Crashlytics একটি নতুন প্রতিবেদন পায় যে সমস্যাটি আবার ঘটেছে। Crashlytics স্বয়ংক্রিয়ভাবে এই প্রত্যাবর্তিত সমস্যাগুলি পুনরায় খোলে যাতে আপনি সেগুলিকে আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সমাধান করতে পারেন।

এখানে একটি উদাহরণের দৃশ্য যা ব্যাখ্যা করে যে কীভাবে Crashlytics একটি সমস্যাকে রিগ্রেশন হিসাবে শ্রেণীবদ্ধ করে:

  1. প্রথমবারের মতো, Crashlytics ক্র্যাশ "A" সম্পর্কে একটি ক্র্যাশ রিপোর্ট পায়৷ Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা খোলে (ইস্যু "A")।
  2. আপনি এই বাগটি দ্রুত ঠিক করুন, সমস্যা "A" বন্ধ করুন এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন৷
  3. আপনি সমস্যাটি বন্ধ করার পরে Crashlytics ইস্যু "A" সম্পর্কে আরেকটি প্রতিবেদন পায়।
    • প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত যে আপনি যখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন হিসাবে বিবেচনা করবে না। বিষয়টি বন্ধ থাকবে।
    • প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত না যে আপনি কখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য কোনও ক্র্যাশ রিপোর্ট পাঠায়নি ), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।

যখন একটি সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন শনাক্তকরণ সতর্কতা পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি আবার খুলেছে। আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনো সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটিকে বন্ধ করার পরিবর্তে "নিঃশব্দ" করুন।

যদি কোনও রিপোর্ট কোনও পুরানো অ্যাপ সংস্করণ থেকে হয় যেটি আপনি সমস্যাটি বন্ধ করার সময় কোনও ক্র্যাশ রিপোর্ট পাঠাননি, তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।

এই পরিস্থিতি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে: আপনি একটি বাগ সংশোধন করেছেন এবং আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করেছেন, কিন্তু আপনার কাছে এখনও বাগ সংশোধন ছাড়াই পুরানো সংস্করণে ব্যবহারকারীরা আছে৷ যদি, ঘটনাক্রমে, আপনি সমস্যাটি বন্ধ করার সময় সেই পুরানো সংস্করণগুলির মধ্যে একটি কখনই কোনও ক্র্যাশ রিপোর্ট না পাঠায়, এবং সেই ব্যবহারকারীরা বাগটির সম্মুখীন হতে শুরু করে, তাহলে সেই ক্র্যাশ রিপোর্টগুলি একটি প্রত্যাবর্তিত সমস্যাকে ট্রিগার করবে৷

আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনো সমস্যা পুনরায় খুলতে না চান, তাহলে সমস্যাটিকে বন্ধ করার পরিবর্তে "নিঃশব্দ" করুন।

,


এই পৃষ্ঠাটি Crashlytics ব্যবহার করার বিষয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নের সমস্যা সমাধানে সহায়তা এবং উত্তর প্রদান করে। আপনি যা খুঁজছেন তা খুঁজে না পেলে বা অতিরিক্ত সাহায্যের প্রয়োজন হলে, Firebase সহায়তার সাথে যোগাযোগ করুন।

সাধারণ সমস্যা সমাধান/FAQ

Firebase কনসোলে আপনার ইস্যু টেবিলে তালিকাভুক্ত সমস্যার জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনি আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। এখানে কেন!

2023 সালের গোড়ার দিকে, আমরা ইভেন্টগুলিকে গ্রুপ করার জন্য একটি উন্নত বিশ্লেষণ ইঞ্জিনের পাশাপাশি একটি আপডেট করা ডিজাইন এবং নতুন সমস্যাগুলির জন্য কিছু উন্নত বৈশিষ্ট্য নিয়ে এসেছি (যেমন বৈকল্পিক!)। সমস্ত বিবরণের জন্য আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন, তবে আপনি হাইলাইটগুলির জন্য নীচে পড়তে পারেন।

Crashlytics আপনার অ্যাপ থেকে সমস্ত ইভেন্ট বিশ্লেষণ করে (যেমন ক্র্যাশ, নন-ফেটাল, এবং ANR) এবং ইভেন্টের গ্রুপ তৈরি করে যাকে সমস্যা বলা হয় — একটি ইস্যুতে সমস্ত ইভেন্টের ব্যর্থতার একটি সাধারণ পয়েন্ট থাকে।

এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিককে দেখে, যার মধ্যে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটির ধরন বৈশিষ্ট্যগুলি রয়েছে৷

যাইহোক, ইভেন্টের এই গ্রুপের মধ্যে, ব্যর্থতার দিকে পরিচালিত স্ট্যাক ট্রেসগুলি ভিন্ন হতে পারে। একটি ভিন্ন স্ট্যাক ট্রেস একটি ভিন্ন মূল কারণ বোঝাতে পারে। একটি ইস্যুতে এই সম্ভাব্য পার্থক্যটি উপস্থাপন করার জন্য, আমরা এখন সমস্যার মধ্যে ভেরিয়েন্ট তৈরি করি - প্রতিটি ভেরিয়েন্ট হল একটি ইস্যুতে ইভেন্টগুলির একটি সাব-গ্রুপ যার একই ব্যর্থতা পয়েন্ট এবং একই স্ট্যাক ট্রেস রয়েছে। ভেরিয়েন্টের সাহায্যে, আপনি একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেসগুলি ডিবাগ করতে পারেন এবং বিভিন্ন মূল কারণগুলি ব্যর্থতার দিকে নিয়ে যাচ্ছে কিনা তা নির্ধারণ করতে পারেন।

এই উন্নতিগুলির সাথে আপনি যা অনুভব করবেন তা এখানে:

  • সংশোধিত মেটাডেটা ইস্যু সারির মধ্যে প্রদর্শিত হয়
    আপনার অ্যাপে সমস্যাগুলি বোঝা এবং ট্রাইজ করা এখন সহজ।

  • কম ডুপ্লিকেট সমস্যা
    একটি লাইন নম্বর পরিবর্তনের ফলে একটি নতুন সমস্যা হয় না।

  • বিভিন্ন মূল কারণ সহ জটিল সমস্যার সহজ ডিবাগিং
    একটি সমস্যার মধ্যে সবচেয়ে সাধারণ স্ট্যাক ট্রেস ডিবাগ করতে ভেরিয়েন্ট ব্যবহার করুন।

  • আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
    একটি নতুন সমস্যা আসলে একটি নতুন বাগ প্রতিনিধিত্ব করে।

  • আরো শক্তিশালী অনুসন্ধান
    প্রতিটি সমস্যায় আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরন এবং প্যাকেজের নাম।

এই উন্নতিগুলি কীভাবে ঘটছে তা এখানে:

  • যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্টগুলি পাই, তখন আমরা তা একটি বিদ্যমান সমস্যার সাথে মেলে কিনা তা পরীক্ষা করব।

  • যদি কোন মিল না থাকে, আমরা স্বয়ংক্রিয়ভাবে ইভেন্টে আমাদের স্মার্ট ইভেন্ট-গ্রুপিং অ্যালগরিদম প্রয়োগ করব এবং পরিমার্জিত মেটাডেটা ডিজাইনের সাথে একটি নতুন সমস্যা তৈরি করব।

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

আপনি যদি ব্রেডক্রাম্ব লগ দেখতে না পান, তাহলে আমরা Google Analytics জন্য আপনার অ্যাপের কনফিগারেশন চেক করার পরামর্শ দিই। আপনি নিম্নলিখিত প্রয়োজনীয়তা পূরণ নিশ্চিত করুন:

আপনি যদি বেগের সতর্কতা দেখতে না পান তবে নিশ্চিত করুন যে আপনি ব্যবহার করছেনCrashlytics SDK v10.8.0+।

আপনি যদি ক্র্যাশ-মুক্ত মেট্রিক্স (যেমন ক্র্যাশ-মুক্ত ব্যবহারকারী এবং সেশন) দেখতে না পান বা অবিশ্বস্ত মেট্রিক না দেখেন তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

  • আপনি ব্যবহার করছেন তা নিশ্চিত করুনCrashlytics SDK v10.8.0+।

  • নিশ্চিত করুন যে আপনার ডেটা সংগ্রহের সেটিংস আপনার ক্র্যাশ-মুক্ত মেট্রিক্সের গুণমানকে প্রভাবিত করছে না:

    • আপনি যদি স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করেন , তবে ক্র্যাশ তথ্য শুধুমাত্র সেই ব্যবহারকারীদের কাছ থেকে Crashlytics এ পাঠানো যেতে পারে যারা স্পষ্টভাবে ডেটা সংগ্রহে নির্বাচন করেছেন। এইভাবে, ক্র্যাশ-মুক্ত মেট্রিক্সের নির্ভুলতা প্রভাবিত হবে কারণ Crashlytics শুধুমাত্র এই অপ্ট-ইন ব্যবহারকারীদের (আপনার সমস্ত ব্যবহারকারীর পরিবর্তে) থেকে ক্র্যাশ তথ্য রয়েছে। এর মানে হল যে আপনার ক্র্যাশ-মুক্ত মেট্রিকগুলি কম নির্ভরযোগ্য এবং আপনার অ্যাপের সামগ্রিক স্থিতিশীলতার কম প্রতিফলিত হতে পারে।

    • আপনার যদি স্বয়ংক্রিয় ডেটা সংগ্রহ অক্ষম থাকে, তাহলে আপনি Crashlytics এ ডিভাইসে ক্যাশে করা রিপোর্ট পাঠাতে sendUnsentReports ব্যবহার করতে পারেন। এই পদ্ধতিটি ব্যবহার করলে Crashlytics ক্র্যাশ ডেটা পাঠানো হবে, কিন্তু সেশন ডেটা নয় যার কারণে কনসোল চার্টগুলি ক্র্যাশ-মুক্ত মেট্রিক্সের জন্য কম বা শূন্য মান দেখায়৷

ক্র্যাশ-মুক্ত মেট্রিক্স বুঝুন দেখুন।

আপনার প্রকল্পের ডিএসওয়াইএমগুলি আপলোড করতে এবং ভার্বোজ আউটপুট পেতে, নিম্নলিখিতগুলি পরীক্ষা করুন:

  1. নিশ্চিত করুন যে আপনার প্রকল্পের বিল্ড ফেজটিতে Crashlytics রান স্ক্রিপ্ট রয়েছে, যা এক্সকোডকে বিল্ড টাইমে আপনার প্রকল্পের ডিএসওয়াইএমগুলি আপলোড করতে দেয় (স্ক্রিপ্ট যুক্ত করার নির্দেশাবলীর জন্য Crashlytics আরম্ভ করা পড়ুন)। আপনার প্রকল্পটি আপডেট করার পরে, একটি ক্র্যাশ করুন এবং নিশ্চিত করুন যে ক্র্যাশটি Crashlytics ড্যাশবোর্ডে উপস্থিত হবে।

  2. আপনি যদি Firebase কনসোলে একটি "অনুপস্থিত ডিএসআইএম" সতর্কতা দেখতে পান তবে এক্সকোডটি নিশ্চিত করুন যে এটি বিল্ডের জন্য সঠিকভাবে ডিএসওয়াইএম উত্পাদন করছে তা নিশ্চিত করতে।

  3. যদি এক্সকোড সঠিকভাবে ডিএসওয়াইএমএস উত্পাদন করে এবং আপনি এখনও ডিএসওয়াইএমএস অনুপস্থিত দেখছেন, সম্ভবত ডিএসওয়াইএমগুলি আপলোড করার সময় রান স্ক্রিপ্ট সরঞ্জামটি আটকে রয়েছে। এই ক্ষেত্রে, নিম্নলিখিত প্রতিটি চেষ্টা করুন:

    • নিশ্চিত হয়ে নিন যে আপনি Crashlytics সর্বশেষতম সংস্করণটি ব্যবহার করছেন।

    • নিখোঁজ ডিএসওয়াইএম ফাইলগুলি ম্যানুয়ালি আপলোড করুন:

      • বিকল্প 1: ডিএসওয়াইএমএস ট্যাবে কনসোল-ভিত্তিক "ড্র্যাগ অ্যান্ড ড্রপ" বিকল্পটি ব্যবহার করুন ডিএসওয়াইএম ফাইলগুলি সহ একটি জিপ সংরক্ষণাগার আপলোড করতে।
      • বিকল্প 2: ডিএসওয়াইএমএস ট্যাবে সরবরাহিত ইউইডগুলির জন্য অনুপস্থিত ডিএসওয়াইএম ফাইলগুলি আপলোড করতে upload-symbols স্ক্রিপ্টটি ব্যবহার করুন।
  4. আপনি যদি অনুপস্থিত ডিএসওয়াইএমগুলি দেখতে থাকেন বা আপলোডগুলি এখনও ব্যর্থ হন তবে ফায়ারবেস সমর্থনের সাথে যোগাযোগ করুন এবং আপনার লগগুলি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন।

যদি আপনার স্ট্যাকের চিহ্নগুলি খারাপভাবে প্রতীকী বলে মনে হয় তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

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

যখন কোনও প্রকল্পের সদস্য একটি নোট পোস্ট করেন, এটি তাদের গুগল অ্যাকাউন্টের ইমেল সহ লেবেলযুক্ত। এই ইমেল ঠিকানাটি নোটের পাশাপাশি নোটটি দেখার জন্য অ্যাক্সেস সহ সমস্ত প্রকল্পের সদস্যদের কাছে দৃশ্যমান।

নিম্নলিখিত নোটগুলি দেখতে, লিখতে এবং মুছতে প্রয়োজনীয় অ্যাক্সেসের বর্ণনা দেয়:

ইন্টিগ্রেশন

আপনার প্রোজেক্ট যদি Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করে, তাহলে ব্যতিক্রম হ্যান্ডলারদের নিবন্ধন করার সময় ক্র্যাশ রিপোর্টাররা হস্তক্ষেপ করছে। সমস্যাটি সমাধান করার জন্য, Mobile Ads ক্র্যাশ রিপোর্টিং বন্ধ করুন disableSDKCrashReporting কল করে।

আপনি BigQuery-এর সাথে Crashlytics লিঙ্ক করার পরে, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।

প্ল্যাটফর্ম সমর্থন

হ্যাঁ, আপনি ম্যাকোস এবং টিভিওএস প্রকল্পগুলিতে Crashlytics প্রয়োগ করতে পারেন। Google Analytics জন্য ফায়ারবেস এসডিকে ভি 8.9.0+ অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন যাতে ক্র্যাশগুলি Google Analytics (ক্র্যাশ-মুক্ত ব্যবহারকারী, সর্বশেষ প্রকাশ, গতিবেগ সতর্কতা এবং ব্রেডক্রম্ব লগ) দ্বারা সংগৃহীত মেট্রিকগুলিতে অ্যাক্সেস পেতে পারে।

অ্যাপ্লিকেশনগুলি বিভিন্ন অ্যাপল প্ল্যাটফর্মের জন্য (যেমন, আইওএস, টিভিওএস এবং ম্যাক ক্যাটালিস্ট) তৈরি করা হলেও আপনি এখন একক ফায়ারবেস প্রকল্পে একাধিক অ্যাপ্লিকেশনগুলির জন্য ক্র্যাশগুলি রিপোর্ট করতে পারেন। পূর্বে, অ্যাপ্লিকেশনগুলিকে পৃথক ফায়ারবেস প্রকল্পগুলিতে আলাদা করা দরকার যদি সেগুলিতে একই বান্ডিল আইডি থাকে।

রেজিস্টেড ইস্যু

আপনি যখন ইস্যুটি আগে বন্ধ করে দিয়েছেন তখন কোনও ইস্যুতে একটি রিগ্রেশন রয়েছে তবে Crashlytics একটি নতুন প্রতিবেদন পেয়েছে যে বিষয়টি পুনরায় সংঘটিত হয়েছে। Crashlytics স্বয়ংক্রিয়ভাবে এই প্রত্যাবর্তিত সমস্যাগুলি পুনরায় খোলে যাতে আপনি সেগুলিকে আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সমাধান করতে পারেন।

এখানে একটি উদাহরণ দৃশ্য যা ব্যাখ্যা করে যে Crashlytics কীভাবে কোনও ইস্যুকে রিগ্রেশন হিসাবে শ্রেণিবদ্ধ করে:

  1. প্রথমবারের মতো, Crashlytics ক্র্যাশ "এ" সম্পর্কে একটি ক্র্যাশ রিপোর্ট পেয়েছে। Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা খোলে (ইস্যু "A")।
  2. আপনি এই বাগটি দ্রুত ঠিক করুন, সমস্যা "A" বন্ধ করুন এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন৷
  3. আপনি সমস্যাটি বন্ধ করার পরে "এ" ইস্যু সম্পর্কে আরও একটি প্রতিবেদন পেয়েছেন Crashlytics
    • প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত যে আপনি যখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন হিসাবে বিবেচনা করবে না। বিষয়টি বন্ধ থাকবে।
    • যদি প্রতিবেদনটি এমন কোনও অ্যাপ্লিকেশন সংস্করণ থেকে আসে যা Crashlytics আপনি কখন সমস্যাটি বন্ধ করে দিয়েছিলেন তা সম্পর্কে জানেন না (যার অর্থ সংস্করণটি কোনও ক্র্যাশের জন্য কোনও ক্র্যাশ রিপোর্ট কখনও প্রেরণ করেনি), তবে Crashlytics বিষয়টি পুনরায় বিবেচনা করে বিবেচনা করে এবং বিষয়টি পুনরায় খোলা হবে।

যখন একটি সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন শনাক্তকরণ সতর্কতা পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি আবার খুলেছে। আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনও সমস্যা পুনরায় খোলা না চান তবে এটি বন্ধ করার পরিবর্তে "নিঃশব্দ"।

যদি কোনও রিপোর্ট কোনও পুরানো অ্যাপ সংস্করণ থেকে হয় যেটি আপনি সমস্যাটি বন্ধ করার সময় কোনও ক্র্যাশ রিপোর্ট পাঠাননি, তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।

এই পরিস্থিতি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে: আপনি একটি বাগ ঠিক করেছেন এবং আপনার অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ প্রকাশ করেছেন, তবে আপনার এখনও বাগ ফিক্স ছাড়াই পুরানো সংস্করণগুলিতে ব্যবহারকারী রয়েছে। যদি, সুযোগে, সেই পুরানো সংস্করণগুলির মধ্যে একটি যদি আপনি সমস্যাটি বন্ধ করে দেন তখন কোনও ক্র্যাশ রিপোর্ট কখনও প্রেরণ করেনি এবং সেই ব্যবহারকারীরা বাগের মুখোমুখি হতে শুরু করে, তবে এই ক্র্যাশ রিপোর্টগুলি একটি প্রতিরোধিত সমস্যাটিকে ট্রিগার করবে।

আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনও সমস্যা পুনরায় খোলা না চান তবে এটি বন্ধ করার পরিবর্তে "নিঃশব্দ"।

,


এই পৃষ্ঠাটি Crashlytics ব্যবহার করার বিষয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নের সমস্যা সমাধানে সহায়তা এবং উত্তর প্রদান করে। আপনি যা খুঁজছেন বা অতিরিক্ত সহায়তার প্রয়োজন তা যদি আপনি খুঁজে না পান তবে ফায়ারবেস সমর্থনের সাথে যোগাযোগ করুন।

সাধারণ সমস্যা সমাধান/FAQ

Firebase কনসোলে আপনার ইস্যু টেবিলে তালিকাভুক্ত সমস্যার জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনি আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। এখানে কেন!

2023 এর গোড়ার দিকে, আমরা গ্রুপিং ইভেন্টগুলির জন্য একটি উন্নত বিশ্লেষণ ইঞ্জিন পাশাপাশি একটি আপডেট ডিজাইন এবং নতুন সমস্যার জন্য কিছু উন্নত বৈশিষ্ট্য (যেমন ভেরিয়েন্টস!) তৈরি করেছি। সমস্ত তথ্যের জন্য আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন, তবে আপনি হাইলাইটগুলির জন্য নীচে পড়তে পারেন।

Crashlytics আপনার অ্যাপ্লিকেশন থেকে সমস্ত ইভেন্ট বিশ্লেষণ করে (যেমন ক্র্যাশ, ফ্যাটালস এবং এএনআরএস) এবং ইস্যু নামক ইভেন্টগুলির গোষ্ঠী তৈরি করে-একটি ইস্যুতে সমস্ত ইভেন্টের ব্যর্থতার একটি সাধারণ বিষয় রয়েছে।

এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিককে দেখে, যার মধ্যে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটির ধরন বৈশিষ্ট্যগুলি রয়েছে৷

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

এই উন্নতিগুলির সাথে আপনি যা অনুভব করবেন তা এখানে:

  • সংশোধিত মেটাডেটা ইস্যু সারির মধ্যে প্রদর্শিত হয়
    আপনার অ্যাপ্লিকেশনটিতে এখন সমস্যাগুলি বোঝা এবং ট্রায়েজ সমস্যাগুলি বোঝা সহজ।

  • কম ডুপ্লিকেট সমস্যা
    একটি লাইন নম্বর পরিবর্তনের ফলে কোনও নতুন সমস্যা হয় না।

  • বিভিন্ন মূল কারণগুলির সাথে জটিল সমস্যাগুলির সহজ ডিবাগিং
    কোনও সমস্যার মধ্যে সর্বাধিক সাধারণ স্ট্যাক ট্রেসগুলি ডিবাগ করতে ভেরিয়েন্টগুলি ব্যবহার করুন।

  • আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
    একটি নতুন সমস্যা আসলে একটি নতুন বাগ উপস্থাপন করে।

  • আরো শক্তিশালী অনুসন্ধান
    প্রতিটি সমস্যায় আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরন এবং প্যাকেজের নাম।

এই উন্নতিগুলি কীভাবে ঘুরছে তা এখানে:

  • যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্টগুলি পাই, তখন আমরা তা একটি বিদ্যমান সমস্যার সাথে মেলে কিনা তা পরীক্ষা করব।

  • যদি কোনও মিল না থাকে তবে আমরা স্বয়ংক্রিয়ভাবে ইভেন্টটিতে আমাদের স্মার্ট ইভেন্ট-গ্রুপিং অ্যালগরিদম প্রয়োগ করব এবং পুনর্নির্মাণ মেটাডেটা ডিজাইনের সাহায্যে একটি নতুন সমস্যা তৈরি করব।

এটিই প্রথম বড় আপডেট যা আমরা আমাদের ইভেন্ট গ্রুপিংয়ে তৈরি করছি। আপনার যদি প্রতিক্রিয়া থাকে বা কোনও সমস্যার মুখোমুখি হন তবে দয়া করে একটি প্রতিবেদন দায়ের করে আমাদের জানান।

আপনি যদি ব্রেডক্র্যাম্ব লগগুলি না দেখেন তবে আমরা Google Analytics জন্য আপনার অ্যাপ্লিকেশনটির কনফিগারেশনটি পরীক্ষা করার পরামর্শ দিই। আপনি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করেছেন তা নিশ্চিত করুন:

আপনি যদি বেগ সতর্কতাগুলি না দেখেন তবে নিশ্চিত হয়ে নিন যে আপনি এটি ব্যবহার করছেনক্র্যাশলিটিক্স এসডিকে ভি 10.8.0+।

আপনি যদি ক্র্যাশ-মুক্ত মেট্রিকগুলি (যেমন ক্র্যাশ-মুক্ত ব্যবহারকারী এবং সেশনগুলির মতো) না দেখেন বা অবিশ্বাস্য মেট্রিকগুলি না দেখেন তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

  • আপনি ব্যবহার করছেন তা নিশ্চিত করুনক্র্যাশলিটিক্স এসডিকে ভি 10.8.0+।

  • আপনার ডেটা সংগ্রহের সেটিংস আপনার ক্র্যাশ-মুক্ত মেট্রিকগুলির গুণমানকে প্রভাবিত করছে না তা নিশ্চিত করুন:

    • আপনি যদি স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করেন তবে ক্র্যাশ তথ্য কেবলমাত্র ব্যবহারকারীদের কাছ থেকে Crashlytics প্রেরণ করা যেতে পারে যারা স্পষ্টভাবে ডেটা সংগ্রহে বেছে নিয়েছেন। সুতরাং, ক্র্যাশ-মুক্ত মেট্রিকগুলির যথার্থতা প্রভাবিত হবে যেহেতু Crashlytics কেবল এই অপ্ট-ইন ব্যবহারকারীদের (আপনার সমস্ত ব্যবহারকারীর চেয়ে) ক্র্যাশ তথ্য রয়েছে। এর অর্থ হ'ল আপনার ক্র্যাশ-মুক্ত মেট্রিকগুলি আপনার অ্যাপ্লিকেশনটির সামগ্রিক স্থিতিশীলতার কম নির্ভরযোগ্য এবং কম প্রতিফলিত হতে পারে।

    • আপনার যদি স্বয়ংক্রিয় ডেটা সংগ্রহ অক্ষম থাকে তবে আপনি Crashlytics অন-ডিভাইস ক্যাশেড প্রতিবেদনগুলি প্রেরণে sendUnsentReports ব্যবহার করতে পারেন। এই পদ্ধতিটি ব্যবহার করা Crashlytics ক্র্যাশ ডেটা প্রেরণ করবে, তবে সেশন ডেটা নয় যা কনসোল চার্টগুলি ক্র্যাশ-মুক্ত মেট্রিকগুলির জন্য কম বা শূন্য মানগুলি দেখায়।

ক্র্যাশ-মুক্ত মেট্রিক্স বুঝুন দেখুন।

আপনার প্রকল্পের ডিএসওয়াইএমগুলি আপলোড করতে এবং ভার্বোজ আউটপুট পেতে, নিম্নলিখিতগুলি পরীক্ষা করুন:

  1. নিশ্চিত করুন যে আপনার প্রকল্পের বিল্ড ফেজটিতে Crashlytics রান স্ক্রিপ্ট রয়েছে, যা এক্সকোডকে বিল্ড টাইমে আপনার প্রকল্পের ডিএসওয়াইএমগুলি আপলোড করতে দেয় (স্ক্রিপ্ট যুক্ত করার নির্দেশাবলীর জন্য Crashlytics আরম্ভ করা পড়ুন)। আপনার প্রকল্পটি আপডেট করার পরে, একটি ক্র্যাশ করুন এবং নিশ্চিত করুন যে ক্র্যাশটি Crashlytics ড্যাশবোর্ডে উপস্থিত হবে।

  2. আপনি যদি Firebase কনসোলে একটি "অনুপস্থিত ডিএসআইএম" সতর্কতা দেখতে পান তবে এক্সকোডটি নিশ্চিত করুন যে এটি বিল্ডের জন্য সঠিকভাবে ডিএসওয়াইএম উত্পাদন করছে তা নিশ্চিত করতে।

  3. যদি এক্সকোড সঠিকভাবে ডিএসওয়াইএমএস উত্পাদন করে এবং আপনি এখনও ডিএসওয়াইএমএস অনুপস্থিত দেখছেন, সম্ভবত ডিএসওয়াইএমগুলি আপলোড করার সময় রান স্ক্রিপ্ট সরঞ্জামটি আটকে রয়েছে। এই ক্ষেত্রে, নিম্নলিখিত প্রতিটি চেষ্টা করুন:

    • নিশ্চিত হয়ে নিন যে আপনি Crashlytics সর্বশেষতম সংস্করণটি ব্যবহার করছেন।

    • নিখোঁজ ডিএসওয়াইএম ফাইলগুলি ম্যানুয়ালি আপলোড করুন:

      • বিকল্প 1: ডিএসওয়াইএমএস ট্যাবে কনসোল-ভিত্তিক "ড্র্যাগ অ্যান্ড ড্রপ" বিকল্পটি ব্যবহার করুন ডিএসওয়াইএম ফাইলগুলি সহ একটি জিপ সংরক্ষণাগার আপলোড করতে।
      • বিকল্প 2: ডিএসওয়াইএমএস ট্যাবে সরবরাহিত ইউইডগুলির জন্য অনুপস্থিত ডিএসওয়াইএম ফাইলগুলি আপলোড করতে upload-symbols স্ক্রিপ্টটি ব্যবহার করুন।
  4. আপনি যদি অনুপস্থিত ডিএসওয়াইএমগুলি দেখতে থাকেন বা আপলোডগুলি এখনও ব্যর্থ হন তবে ফায়ারবেস সমর্থনের সাথে যোগাযোগ করুন এবং আপনার লগগুলি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন।

যদি আপনার স্ট্যাকের চিহ্নগুলি খারাপভাবে প্রতীকী বলে মনে হয় তবে নিম্নলিখিতগুলি পরীক্ষা করুন:

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

যখন কোনও প্রকল্পের সদস্য একটি নোট পোস্ট করেন, এটি তাদের গুগল অ্যাকাউন্টের ইমেল সহ লেবেলযুক্ত। এই ইমেল ঠিকানাটি নোটের পাশাপাশি নোটটি দেখার জন্য অ্যাক্সেস সহ সমস্ত প্রকল্পের সদস্যদের কাছে দৃশ্যমান।

নিম্নলিখিত নোটগুলি দেখতে, লিখতে এবং মুছতে প্রয়োজনীয় অ্যাক্সেসের বর্ণনা দেয়:

ইন্টিগ্রেশন

আপনার প্রোজেক্ট যদি Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করে, তাহলে ব্যতিক্রম হ্যান্ডলারদের নিবন্ধন করার সময় ক্র্যাশ রিপোর্টাররা হস্তক্ষেপ করছে। সমস্যাটি সমাধান করার জন্য, Mobile Ads ক্র্যাশ রিপোর্টিং বন্ধ করুন disableSDKCrashReporting কল করে।

আপনি BigQuery-এর সাথে Crashlytics লিঙ্ক করার পরে, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।

প্ল্যাটফর্ম সমর্থন

হ্যাঁ, আপনি ম্যাকোস এবং টিভিওএস প্রকল্পগুলিতে Crashlytics প্রয়োগ করতে পারেন। Google Analytics জন্য ফায়ারবেস এসডিকে ভি 8.9.0+ অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন যাতে ক্র্যাশগুলি Google Analytics (ক্র্যাশ-মুক্ত ব্যবহারকারী, সর্বশেষ প্রকাশ, গতিবেগ সতর্কতা এবং ব্রেডক্রম্ব লগ) দ্বারা সংগৃহীত মেট্রিকগুলিতে অ্যাক্সেস পেতে পারে।

অ্যাপ্লিকেশনগুলি বিভিন্ন অ্যাপল প্ল্যাটফর্মের জন্য (যেমন, আইওএস, টিভিওএস এবং ম্যাক ক্যাটালিস্ট) তৈরি করা হলেও আপনি এখন একক ফায়ারবেস প্রকল্পে একাধিক অ্যাপ্লিকেশনগুলির জন্য ক্র্যাশগুলি রিপোর্ট করতে পারেন। পূর্বে, অ্যাপ্লিকেশনগুলিকে পৃথক ফায়ারবেস প্রকল্পগুলিতে আলাদা করা দরকার যদি সেগুলিতে একই বান্ডিল আইডি থাকে।

রেজিস্টেড ইস্যু

আপনি যখন ইস্যুটি আগে বন্ধ করে দিয়েছেন তখন কোনও ইস্যুতে একটি রিগ্রেশন রয়েছে তবে Crashlytics একটি নতুন প্রতিবেদন পেয়েছে যে বিষয়টি পুনরায় সংঘটিত হয়েছে। Crashlytics স্বয়ংক্রিয়ভাবে এই প্রত্যাবর্তিত সমস্যাগুলি পুনরায় খোলে যাতে আপনি সেগুলিকে আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সমাধান করতে পারেন।

এখানে একটি উদাহরণ দৃশ্য যা ব্যাখ্যা করে যে Crashlytics কীভাবে কোনও ইস্যুকে রিগ্রেশন হিসাবে শ্রেণিবদ্ধ করে:

  1. প্রথমবারের মতো, Crashlytics ক্র্যাশ "এ" সম্পর্কে একটি ক্র্যাশ রিপোর্ট পেয়েছে। Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা খোলে (ইস্যু "A")।
  2. আপনি এই বাগটি দ্রুত ঠিক করুন, সমস্যা "A" বন্ধ করুন এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন৷
  3. আপনি সমস্যাটি বন্ধ করার পরে "এ" ইস্যু সম্পর্কে আরও একটি প্রতিবেদন পেয়েছেন Crashlytics
    • প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত যে আপনি যখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন হিসাবে বিবেচনা করবে না। বিষয়টি বন্ধ থাকবে।
    • যদি প্রতিবেদনটি এমন কোনও অ্যাপ্লিকেশন সংস্করণ থেকে আসে যা Crashlytics আপনি কখন সমস্যাটি বন্ধ করে দিয়েছিলেন তা সম্পর্কে জানেন না (যার অর্থ সংস্করণটি কোনও ক্র্যাশের জন্য কোনও ক্র্যাশ রিপোর্ট কখনও প্রেরণ করেনি), তবে Crashlytics বিষয়টি পুনরায় বিবেচনা করে বিবেচনা করে এবং বিষয়টি পুনরায় খোলা হবে।

যখন একটি সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন শনাক্তকরণ সতর্কতা পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি আবার খুলেছে। আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনও সমস্যা পুনরায় খোলা না চান তবে এটি বন্ধ করার পরিবর্তে "নিঃশব্দ"।

যদি কোনও রিপোর্ট কোনও পুরানো অ্যাপ সংস্করণ থেকে হয় যেটি আপনি সমস্যাটি বন্ধ করার সময় কোনও ক্র্যাশ রিপোর্ট পাঠাননি, তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।

এই পরিস্থিতি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে: আপনি একটি বাগ ঠিক করেছেন এবং আপনার অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ প্রকাশ করেছেন, তবে আপনার এখনও বাগ ফিক্স ছাড়াই পুরানো সংস্করণগুলিতে ব্যবহারকারী রয়েছে। যদি, সুযোগে, সেই পুরানো সংস্করণগুলির মধ্যে একটি যদি আপনি সমস্যাটি বন্ধ করে দেন তখন কোনও ক্র্যাশ রিপোর্ট কখনও প্রেরণ করেনি এবং সেই ব্যবহারকারীরা বাগের মুখোমুখি হতে শুরু করে, তবে এই ক্র্যাশ রিপোর্টগুলি একটি প্রতিরোধিত সমস্যাটিকে ট্রিগার করবে।

আপনি যদি আমাদের রিগ্রেশন অ্যালগরিদমের কারণে কোনও সমস্যা পুনরায় খোলা না চান তবে এটি বন্ধ করার পরিবর্তে "নিঃশব্দ"।

,


এই পৃষ্ঠাটি Crashlytics ব্যবহার করার বিষয়ে প্রায়শই জিজ্ঞাসিত প্রশ্নের সমস্যা সমাধানে সহায়তা এবং উত্তর প্রদান করে। If you can't find what you're looking for or need additional help, contact Firebase support .

General troubleshooting/FAQ

Firebase কনসোলে আপনার ইস্যু টেবিলে তালিকাভুক্ত সমস্যার জন্য আপনি দুটি ভিন্ন ফর্ম্যাট লক্ষ্য করতে পারেন। এবং আপনি আপনার কিছু সমস্যার মধ্যে "ভেরিয়েন্ট" নামক একটি বৈশিষ্ট্যও লক্ষ্য করতে পারেন। এখানে কেন!

In early 2023, we rolled out an improved analysis engine for grouping events as well as an updated design and some advanced features for new issues (like variants!). Check out our recent blog post for all the details, but you can read below for the highlights.

Crashlytics analyzes all the events from your app (like crashes, non-fatals, and ANRs) and creates groups of events called issues — all events in an issue have a common point of failure.

এই সমস্যাগুলির মধ্যে ইভেন্টগুলিকে গোষ্ঠীভুক্ত করার জন্য, উন্নত বিশ্লেষণ ইঞ্জিন এখন ইভেন্টের অনেক দিককে দেখে, যার মধ্যে স্ট্যাক ট্রেসের ফ্রেম, ব্যতিক্রম বার্তা, ত্রুটি কোড এবং অন্যান্য প্ল্যাটফর্ম বা ত্রুটির ধরন বৈশিষ্ট্যগুলি রয়েছে৷

However, within this group of events, the stack traces leading to the failure might be different. A different stack trace could mean a different root cause. To represent this possible difference within an issue, we now create variants within issues - each variant is a sub-group of events in an issue that have the same failure point and a similar stack trace. With variants, you can debug the most common stack traces within an issue and determine if different root causes are leading to the failure.

এই উন্নতিগুলির সাথে আপনি যা অনুভব করবেন তা এখানে:

  • সংশোধিত মেটাডেটা ইস্যু সারির মধ্যে প্রদর্শিত হয়
    It's now easier to understand and triage issues in your app.

  • কম ডুপ্লিকেট সমস্যা
    A line number change doesn't result in a new issue.

  • Easier debugging of complex issues with various root causes
    Use variants to debug the most common stack traces within an issue.

  • আরও অর্থপূর্ণ সতর্কতা এবং সংকেত
    A new issue actually represents a new bug.

  • আরো শক্তিশালী অনুসন্ধান
    প্রতিটি সমস্যায় আরও অনুসন্ধানযোগ্য মেটাডেটা থাকে, যেমন ব্যতিক্রমের ধরন এবং প্যাকেজের নাম।

Here's how these improvements are rolling out:

  • যখন আমরা আপনার অ্যাপ থেকে নতুন ইভেন্টগুলি পাই, তখন আমরা তা একটি বিদ্যমান সমস্যার সাথে মেলে কিনা তা পরীক্ষা করব।

  • If there's no match, we'll automatically apply our smarter event-grouping algorithm to the event and create a new issue with the revamped metadata design.

এটিই প্রথম বড় আপডেট যা আমরা আমাদের ইভেন্ট গ্রুপিংয়ে তৈরি করছি। If you have feedback or encounter any issues, please let us know by filing a report.

If you're not seeing breadcrumb logs , we recommend checking your app's configuration for Google Analytics . Make sure you meet the following requirements:

If you're not seeing velocity alerts, make sure that you're using theCrashlytics SDK v10.8.0+.

If you're not seeing crash-free metrics (like crash-free users and sessions) or seeing unreliable metrics, check the following:

  • Make sure that you're using theCrashlytics SDK v10.8.0+.

  • Make sure that your data collection settings aren't impacting the quality of your crash-free metrics:

    • If you enable opt-in reporting by disabling automatic crash reporting, crash information can only be sent to Crashlytics from users who have explicitly opted into data collection. Thus, the accuracy of crash-free metrics will be affected since Crashlytics only has crash information from these opted-in users (rather than all your users). This means that your crash-free metrics may be less reliable and less reflective of the overall stability of your app.

    • If you have automatic data collection disabled, you can use sendUnsentReports to send on-device cached reports to Crashlytics . Using this method will send crash data to Crashlytics , but not sessions data which causes the console charts to show low or zero values for crash-free metrics.

ক্র্যাশ-মুক্ত মেট্রিক্স বুঝুন দেখুন।

To upload your project's dSYMs and get verbose output, check the following:

  1. Make sure your project's build phase contains the Crashlytics run script, which allows Xcode to upload your project's dSYMs at build time (read Initializing Crashlytics for instructions on adding the script). After updating your project, force a crash and confirm that the crash appears in the Crashlytics dashboard.

  2. If you see a "Missing dSYM" alert in the Firebase console, check Xcode to make sure it's properly producing dSYMs for the build.

  3. If Xcode is properly producing dSYMs, and you're still seeing missing dSYMs, it's likely the run script tool is getting stuck while uploading the dSYMs. In this case, try each of the following:

    • Make sure you're using the latest version of Crashlytics .

    • Upload the missing dSYM files manually:

      • Option 1: Use the console-based "Drag and Drop" option in the dSYMs tab to upload a zip archive containing the missing dSYM files.
      • Option 2: Use the upload-symbols script to upload the missing dSYM files, for the provided UUIDs in the dSYMs tab.
  4. If you continue to see missing dSYMs, or uploads are still unsuccessful, contact Firebase Support and be sure to include your logs.

If your stack traces seem to be poorly symbolicated, check the following:

  • If frames from your app's library lack references to your app's code, make sure that -fomit-frame-pointer is not set as a compilation flag.

  • If you see several (Missing) frames for your app's library, check if there are optional dSYMs listed as missing (for the affected app version) in the Crashlytics dSYMs tab of the Firebase console. If so, follow the "Missing dSYM alert" troubleshooting step in the dSYMs are missing/not uploading FAQ on this page. Note that uploading these dSYMs will not symbolicate crashes that have already occurred, but this will help ensure symbolication for future crashes.

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

When a project member posts a note, it's labeled with the email of their Google account. This email address is visible, along with the note, to all project members with access to view the note.

The following describes the access required to view, write, and delete notes:

ইন্টিগ্রেশন

আপনার প্রোজেক্ট যদি Google Mobile Ads SDK-এর পাশাপাশি Crashlytics ব্যবহার করে, তাহলে ব্যতিক্রম হ্যান্ডলারদের নিবন্ধন করার সময় ক্র্যাশ রিপোর্টাররা হস্তক্ষেপ করছে। To fix the issue, turn off crash reporting in the Mobile Ads SDK by calling disableSDKCrashReporting .

আপনি BigQuery-এর সাথে Crashlytics লিঙ্ক করার পরে, আপনার তৈরি করা নতুন ডেটাসেটগুলি স্বয়ংক্রিয়ভাবে মার্কিন যুক্তরাষ্ট্রে অবস্থিত হবে, আপনার Firebase প্রকল্পের অবস্থান নির্বিশেষে।

প্ল্যাটফর্ম সমর্থন

Yes, you can implement Crashlytics in macOS and tvOS projects. Make sure to include v8.9.0+ of the Firebase SDK for Google Analytics so that crashes will have access to metrics collected by Google Analytics (crash-free users, latest release, velocity alerts, and breadcrumb logs).

You can now report crashes for multiple apps in a single Firebase project, even when the apps are built for different Apple platforms (eg, iOS, tvOS, and Mac Catalyst). Previously, you needed to separate the apps into individual Firebase projects if they contained the same bundle ID.

Regressed issues

An issue has had a regression when you've previously closed the issue but Crashlytics gets a new report that the issue has re-occurred. Crashlytics স্বয়ংক্রিয়ভাবে এই প্রত্যাবর্তিত সমস্যাগুলি পুনরায় খোলে যাতে আপনি সেগুলিকে আপনার অ্যাপের জন্য উপযুক্ত হিসাবে সমাধান করতে পারেন।

Here's an example scenario that explains how Crashlytics categorizes an issue as a regression:

  1. For the first time ever, Crashlytics gets a crash report about Crash "A". Crashlytics সেই ক্র্যাশের জন্য একটি সংশ্লিষ্ট সমস্যা খোলে (ইস্যু "A")।
  2. আপনি এই বাগটি দ্রুত ঠিক করুন, সমস্যা "A" বন্ধ করুন এবং তারপর আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ করুন৷
  3. Crashlytics gets another report about Issue "A" after you've closed the issue.
    • প্রতিবেদনটি যদি এমন কোনো অ্যাপ সংস্করণ থেকে হয় যা Crashlytics জানত যে আপনি যখন সমস্যাটি বন্ধ করেছিলেন (অর্থাৎ সংস্করণটি কোনও ক্র্যাশের জন্য একটি ক্র্যাশ রিপোর্ট পাঠিয়েছিল), তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন হিসাবে বিবেচনা করবে না। বিষয়টি বন্ধ থাকবে।
    • If the report is from an app version that Crashlytics did not know about when you closed the issue (meaning that the version had never sent any crash report for any crash at all), then Crashlytics considers the issue regressed and will re-open the issue.

যখন একটি সমস্যা রিগ্রেস হয়, তখন আমরা একটি রিগ্রেশন শনাক্তকরণ সতর্কতা পাঠাই এবং সমস্যাটিতে একটি রিগ্রেশন সিগন্যাল যোগ করি যাতে আপনাকে জানানো হয় যে Crashlytics সমস্যাটি আবার খুলেছে। If you do not want an issue to re-open due to our regression algorithm, "mute" the issue instead of closing it.

যদি কোনও রিপোর্ট কোনও পুরানো অ্যাপ সংস্করণ থেকে হয় যেটি আপনি সমস্যাটি বন্ধ করার সময় কোনও ক্র্যাশ রিপোর্ট পাঠাননি, তাহলে Crashlytics সমস্যাটিকে প্রত্যাবর্তন বলে বিবেচনা করে এবং সমস্যাটি আবার খুলবে।

This situation can happen in the following situation: You've fixed a bug and released a new version of your app, but you still have users on older versions without the bug fix. If, by chance, one of those older versions had never sent any crash reports at all when you closed the issue, and those users start encountering the bug, then those crash reports would trigger a regressed issue.

If you do not want an issue to re-open due to our regression algorithm, "mute" the issue instead of closing it.