Crashlytics ড্যাশবোর্ডে, আপনি কোনও সমস্যার উপর ক্লিক করতে পারেন এবং একটি বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics এ রিপোর্ট করা ইভেন্টগুলির পরিস্থিতি আরও ভালভাবে বুঝতে সাহায্য করার জন্য আপনি সেই রিপোর্টগুলি কাস্টমাইজ করতে পারেন।
আপনার অ্যাপটিকে কাস্টম কী , কাস্টম লগ বার্তা এবং ব্যবহারকারী শনাক্তকারী লগ করার জন্য ব্যবহার করুন।
ব্যতিক্রমগুলি Crashlytics এ রিপোর্ট করুন।
যদি আপনার অ্যাপটি Google Analytics জন্য Firebase SDK ব্যবহার করে, তাহলে স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগগুলি পাবেন। এই লগগুলি আপনাকে আপনার অ্যাপে Crashlytics সংগৃহীত ইভেন্টের দিকে পরিচালিত ব্যবহারকারীর ক্রিয়াকলাপগুলিতে দৃশ্যমানতা দেয়।
স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং বন্ধ করুন এবং আপনার ব্যবহারকারীদের জন্য অপ্ট-ইন রিপোর্টিং সক্ষম করুন । মনে রাখবেন, ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপ ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে।
কাস্টম কী যোগ করুন
কাস্টম কীগুলি আপনাকে আপনার অ্যাপের নির্দিষ্ট অবস্থা জানতে সাহায্য করে যা ক্র্যাশের দিকে পরিচালিত করে। আপনি আপনার ক্র্যাশ রিপোর্টের সাথে ইচ্ছামত কী/মান জোড়া সংযুক্ত করতে পারেন, তারপর Firebase কনসোলে ক্র্যাশ রিপোর্ট অনুসন্ধান এবং ফিল্টার করতে কাস্টম কীগুলি ব্যবহার করতে পারেন।
- Crashlytics ড্যাশবোর্ডে , আপনি এমন সমস্যাগুলি অনুসন্ধান করতে পারেন যা একটি কাস্টম কী-এর সাথে মেলে।
- যখন আপনি কনসোলে একটি নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, তখন আপনি প্রতিটি ইভেন্টের জন্য সংশ্লিষ্ট কাস্টম কীগুলি দেখতে পারেন ( কী সাবট্যাব) এবং এমনকি কাস্টম কী দ্বারা ইভেন্টগুলি ফিল্টার করতে পারেন (পৃষ্ঠার শীর্ষে ফিল্টার মেনু)।
কী/মান জোড়া সেট করতে setCustomValue পদ্ধতি ব্যবহার করুন। উদাহরণস্বরূপ:
সুইফট
// Set int_key to 100. Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set str_key to "hello". Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")
অবজেক্টিভ-সি
পূর্ণসংখ্যা, বুলিয়ান, অথবা ফ্লোট সেট করার সময়, মানটি @( value ) হিসেবে বক্স করুন।
// Set int_key to 100. [[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set str_key to "hello". [[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];
আপনি একটি বিদ্যমান কী-এর মান পরিবর্তন করতে পারেন, কীটি কল করে এবং এটিকে একটি ভিন্ন মানে সেট করে। উদাহরণস্বরূপ:
সুইফট
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set int_key to 50 from 100. Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")
অবজেক্টিভ-সি
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set int_key to 50 from 100. [[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];
setCustomKeysAndValues পদ্ধতি ব্যবহার করে একটি NSDictionary একমাত্র প্যারামিটার ব্যবহার করে বাল্ক কী/মান জোড়া যোগ করুন:
সুইফট
let keysAndValues = [ "string key" : "string value", "string key 2" : "string value 2", "boolean key" : true, "boolean key 2" : false, "float key" : 1.01, "float key 2" : 2.02 ] as [String : Any] Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)
অবজেক্টিভ-সি
NSDictionary *keysAndValues = @{@"string key" : @"string value", @"string key 2" : @"string value 2", @"boolean key" : @(YES), @"boolean key 2" : @(NO), @"float key" : @(1.01), @"float key 2" : @(2.02)}; [[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];
কাস্টম লগ বার্তা যোগ করুন
ক্র্যাশের পূর্ববর্তী ঘটনাগুলির জন্য আরও প্রসঙ্গ প্রদানের জন্য, আপনি আপনার অ্যাপে কাস্টম Crashlytics লগ যোগ করতে পারেন। Crashlytics লগগুলিকে আপনার ক্র্যাশ ডেটার সাথে সংযুক্ত করে এবং লগ ট্যাবের অধীনে Firebase কনসোলের Crashlytics পৃষ্ঠায় প্রদর্শন করে।
সুইফট
সমস্যাগুলি চিহ্নিত করতে log() অথবা log(format:, arguments:) ব্যবহার করুন। যদি আপনি বার্তা সহ একটি কার্যকর লগ আউটপুট পেতে চান, তাহলে আপনি যে অবজেক্টটি log() এ পাস করবেন তা অবশ্যই CustomStringConvertible প্রপার্টির সাথে সঙ্গতিপূর্ণ হবে। log() আপনার দ্বারা অবজেক্টের জন্য সংজ্ঞায়িত বর্ণনা প্রপার্টিটি ফেরত পাঠায়। উদাহরণস্বরূপ:
Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")
.log(format:, arguments:) ফর্ম্যাটের মান getVaList() কল করার ফলে ফিরে আসে। উদাহরণস্বরূপ:
Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))
log() অথবা log(format:, arguments:) কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, Crashlytics রেফারেন্স ডকুমেন্টেশন দেখুন।
অবজেক্টিভ-সি
সমস্যাগুলি চিহ্নিত করতে log অথবা logWithFormat ব্যবহার করুন। মনে রাখবেন যে আপনি যদি বার্তা সহ একটি কার্যকর লগ আউটপুট পেতে চান, তাহলে আপনি যে অবজেক্টটি উভয় পদ্ধতিতে পাস করবেন সেটিকে description instance property ওভাররাইড করতে হবে। উদাহরণস্বরূপ:
[[FIRCrashlytics crashlytics] log:@"Simple string message"]; [[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict]; [[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];
log এবং logWithFormat কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, Crashlytics রেফারেন্স ডকুমেন্টেশন দেখুন।
ব্যবহারকারী শনাক্তকারী সেট করুন
কোনও সমস্যা নির্ণয়ের জন্য, আপনার কোন ব্যবহারকারী ক্র্যাশের সম্মুখীন হয়েছেন তা জানা প্রায়শই সহায়ক। Crashlytics আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের বেনামে সনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে।
আপনার রিপোর্টে ব্যবহারকারীর আইডি যোগ করতে, প্রতিটি ব্যবহারকারীকে একটি আইডি নম্বর, টোকেন, অথবা হ্যাশ করা মানের আকারে একটি অনন্য শনাক্তকারী বরাদ্দ করুন:
সুইফট
Crashlytics.crashlytics().setUserID("123456789")
অবজেক্টিভ-সি
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
যদি আপনার কোন ব্যবহারকারী শনাক্তকারী সেট করার পরে তা মুছে ফেলার প্রয়োজন হয়, তাহলে মানটি একটি ফাঁকা স্ট্রিংয়ে রিসেট করুন। ব্যবহারকারী শনাক্তকারী সাফ করলে বিদ্যমান Crashlytics রেকর্ডগুলি মুছে যাবে না। যদি আপনার কোন ব্যবহারকারী আইডির সাথে সম্পর্কিত রেকর্ডগুলি মুছে ফেলার প্রয়োজন হয়, তাহলে Firebase সহায়তার সাথে যোগাযোগ করুন ।
মারাত্মক নয় এমন ব্যতিক্রমগুলি রিপোর্ট করুন
আপনার অ্যাপের ক্র্যাশগুলি স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, Crashlytics আপনাকে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে দেয় এবং পরের বার আপনার অ্যাপ চালু হওয়ার সময় সেগুলি আপনার কাছে পাঠায়।
আপনি recordError পদ্ধতি ব্যবহার করে NSError অবজেক্ট রেকর্ড করে অ-মারাত্মক ব্যতিক্রম রেকর্ড করতে পারেন। recordError [NSThread callStackReturnAddresses] কল করে থ্রেডের কল স্ট্যাক ক্যাপচার করে।
সুইফট
Crashlytics.crashlytics().record(error: error)
অবজেক্টিভ-সি
[[FIRCrashlytics crashlytics] recordError:error];
recordError পদ্ধতি ব্যবহার করার সময়, NSError কাঠামো এবং Crashlytics কীভাবে ডেটা ব্যবহার করে ক্র্যাশগুলিকে গ্রুপ করে তা বোঝা গুরুত্বপূর্ণ। recordError পদ্ধতির ভুল ব্যবহার অপ্রত্যাশিত আচরণের কারণ হতে পারে এবং Crashlytics আপনার অ্যাপের জন্য লগ করা ত্রুটির রিপোর্টিং সীমিত করতে পারে।
একটি NSError অবজেক্টের তিনটি আর্গুমেন্ট থাকে:
-
domain: String -
code: Int -
userInfo: [AnyHashable : Any]? = nil
মারাত্মক ক্র্যাশের বিপরীতে, যা স্ট্যাক ট্রেস বিশ্লেষণের মাধ্যমে গোষ্ঠীভুক্ত করা হয়, লগ করা ত্রুটিগুলি domain এবং code অনুসারে গোষ্ঠীভুক্ত করা হয়। এটি মারাত্মক ক্র্যাশ এবং লগ করা ত্রুটির মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য। উদাহরণস্বরূপ:
সুইফট
let userInfo = [ NSLocalizedDescriptionKey: NSLocalizedString("The request failed.", comment: ""), NSLocalizedFailureReasonErrorKey: NSLocalizedString("The response returned a 404.", comment: ""), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString("Does this page exist?", comment: ""), "ProductID": "123456", "View": "MainView" ] let error = NSError.init(domain: NSCocoaErrorDomain, code: -1001, userInfo: userInfo)
অবজেক্টিভ-সি
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"The request failed.", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The response returned a 404.", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Does this page exist?", nil), @"ProductID": @"123456", @"View": @"MainView", }; NSError *error = [NSError errorWithDomain:NSCocoaErrorDomain code:-1001 userInfo:userInfo];
যখন আপনি উপরের ত্রুটিটি লগ করেন, তখন এটি একটি নতুন সমস্যা তৈরি করে যা NSSomeErrorDomain এবং -1001 দ্বারা গোষ্ঠীভুক্ত করা হয়। একই ডোমেন এবং কোড মান ব্যবহার করে অতিরিক্ত লগ করা ত্রুটিগুলি একই সমস্যার অধীনে গোষ্ঠীভুক্ত করা হয়। userInfo অবজেক্টের মধ্যে থাকা ডেটা কী-মান জোড়ায় রূপান্তরিত হয় এবং একটি পৃথক সমস্যার মধ্যে কী/লগ বিভাগে প্রদর্শিত হয়।
লগ এবং কাস্টম কী
ক্র্যাশ রিপোর্টের মতোই, আপনি NSError এ প্রসঙ্গ যোগ করার জন্য লগ এবং কাস্টম কী এম্বেড করতে পারেন। তবে, ক্র্যাশের সাথে সংযুক্ত লগ এবং লগ করা ত্রুটির মধ্যে পার্থক্য রয়েছে। যখন একটি ক্র্যাশ ঘটে এবং অ্যাপটি পুনরায় চালু করা হয়, তখন Crashlytics ডিস্ক থেকে যে লগগুলি পুনরুদ্ধার করে তা হল ক্র্যাশের সময় পর্যন্ত লেখা। যখন আপনি একটি NSError লগ করেন, তখন অ্যাপটি তাৎক্ষণিকভাবে বন্ধ হয় না। যেহেতু Crashlytics শুধুমাত্র পরবর্তী অ্যাপ লঞ্চের সময় লগ করা ত্রুটি প্রতিবেদন পাঠায় এবং ডিস্কে লগের জন্য বরাদ্দকৃত স্থানের পরিমাণ সীমিত করতে হয়, তাই NSError রেকর্ড করার পরে পর্যাপ্ত লগ করা সম্ভব যাতে Crashlytics ডিভাইস থেকে রিপোর্ট পাঠানোর সময় সমস্ত প্রাসঙ্গিক লগগুলি ঘোরানো হয়। NSErrors লগ করার সময় এবং আপনার অ্যাপে লগ এবং কাস্টম কী ব্যবহার করার সময় এই ভারসাম্যটি মনে রাখবেন।
কর্মক্ষমতা বিবেচনা
মনে রাখবেন যে NSError লগ করা বেশ ব্যয়বহুল হতে পারে। কল করার সময়, Crashlytics স্ট্যাক আনওয়াইন্ডিং নামক একটি প্রক্রিয়া ব্যবহার করে বর্তমান থ্রেডের কল স্ট্যাক ক্যাপচার করে। এই প্রক্রিয়াটি CPU এবং I/O নিবিড় হতে পারে, বিশেষ করে DWARF আনওয়াইন্ডিং সমর্থনকারী আর্কিটেকচারগুলিতে (arm64 এবং x86)। আনওয়াইন্ড সম্পূর্ণ হওয়ার পরে, তথ্যটি সিঙ্ক্রোনাসভাবে ডিস্কে লেখা হয়। এটি পরবর্তী লাইনটি ক্র্যাশ করলে ডেটা ক্ষতি রোধ করে।
যদিও ব্যাকগ্রাউন্ড থ্রেডে এই API কল করা নিরাপদ, মনে রাখবেন যে এই কলটি অন্য সারিতে প্রেরণ করলে বর্তমান স্ট্যাক ট্রেসের প্রসঙ্গ নষ্ট হয়ে যায়।
NSExceptions সম্পর্কে কী?
Crashlytics সরাসরি NSException ইনস্ট্যান্স লগিং এবং রেকর্ড করার কোনও সুবিধা প্রদান করে না। সাধারণভাবে বলতে গেলে, Cocoa এবং Cocoa Touch API গুলি ব্যতিক্রম-নিরাপদ নয়। এর অর্থ হল @catch ব্যবহার আপনার প্রক্রিয়ায় খুব গুরুতর অনিচ্ছাকৃত পার্শ্ব প্রতিক্রিয়া সৃষ্টি করতে পারে, এমনকি যখন এটি অত্যন্ত সতর্কতার সাথে ব্যবহার করা হয়। আপনার কোডে কখনই @catch বিবৃতি ব্যবহার করা উচিত নয়। অনুগ্রহ করে এই বিষয়ে Apple এর ডকুমেন্টেশন দেখুন।
স্ট্যাক ট্রেস কাস্টমাইজ করুন
যদি আপনার অ্যাপটি একটি নন-নেটিভ পরিবেশে (যেমন C++ বা ইউনিটি) চলে, তাহলে আপনি আপনার অ্যাপের নেটিভ এক্সেপশন ফর্ম্যাটে ক্র্যাশ মেটাডেটা রিপোর্ট করতে এক্সেপশন মডেল API ব্যবহার করতে পারেন। রিপোর্ট করা ব্যতিক্রমগুলিকে নন-ফ্যাটাল হিসাবে চিহ্নিত করা হয়।
সুইফট
var ex = ExceptionModel(name:"FooException", reason:"There was a foo.") ex.stackTrace = [ StackFrame(symbol:"makeError", file:"handler.js", line:495), StackFrame(symbol:"then", file:"routes.js", line:102), StackFrame(symbol:"main", file:"app.js", line:12), ] crashlytics.record(exceptionModel:ex)
অবজেক্টিভ-সি
FIRExceptionModel *model = [FIRExceptionModel exceptionModelWithName:@"FooException" reason:@"There was a foo."]; model.stackTrace = @[ [FIRStackFrame stackFrameWithSymbol:@"makeError" file:@"handler.js" line:495], [FIRStackFrame stackFrameWithSymbol:@"then" file:@"routes.js" line:102], [FIRStackFrame stackFrameWithSymbol:@"main" file:@"app.js" line:12], ]; [[FIRCrashlytics crashlytics] recordExceptionModel:model];
কাস্টম স্ট্যাক ফ্রেমগুলি কেবল ঠিকানা দিয়েও শুরু করা যেতে পারে:
সুইফট
var ex = ExceptionModel.init(name:"FooException", reason:"There was a foo.") ex.stackTrace = [ StackFrame(address:0xfa12123), StackFrame(address:12412412), StackFrame(address:194129124), ] crashlytics.record(exceptionModel:ex)
অবজেক্টিভ-সি
FIRExceptionModel *model = [FIRExceptionModel exceptionModelWithName:@"FooException" reason:@"There was a foo."]; model.stackTrace = @[ [FIRStackFrame stackFrameWithAddress:0xfa12123], [FIRStackFrame stackFrameWithAddress:12412412], [FIRStackFrame stackFrameWithAddress:194129124], ]; [[FIRCrashlytics crashlytics] recordExceptionModel:model];
ব্রেডক্রাম্ব লগ পান
ব্রেডক্রাম্ব লগগুলি আপনাকে আপনার অ্যাপের সাথে ব্যবহারকারীর ইন্টারঅ্যাকশন সম্পর্কে আরও ভাল ধারণা দেয় যা ক্র্যাশ, নন-ফ্যাটাল, বা ANR ইভেন্টের দিকে পরিচালিত করে। কোনও সমস্যা পুনরুত্পাদন এবং ডিবাগ করার চেষ্টা করার সময় এই লগগুলি সহায়ক হতে পারে।
ব্রেডক্রাম্ব লগগুলি গুগল অ্যানালিটিক্স দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগ পেতে, আপনাকে আপনার ফায়ারবেস প্রকল্পের জন্য গুগল অ্যানালিটিক্স সক্ষম করতে হবে এবং আপনার অ্যাপে Google Analytics জন্য ফায়ারবেস SDK যুক্ত করতে হবে । একবার এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, যখন আপনি কোনও সমস্যার বিবরণ দেখেন তখন লগ ট্যাবের মধ্যে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে ইভেন্টের ডেটার সাথে অন্তর্ভুক্ত হয়ে যায়।
Analytics SDK স্বয়ংক্রিয়ভাবে screen_view ইভেন্ট লগ করে যা ব্রেডক্রাম্ব লগগুলিকে ক্র্যাশের আগে দেখা, নন-ফ্যাটাল, বা ANR ইভেন্টের স্ক্রিনের তালিকা দেখাতে সক্ষম করে। একটি screen_view breadcrumb লগে একটি firebase_screen_class প্যারামিটার থাকে।
ব্যবহারকারীর সেশনের মধ্যে ম্যানুয়ালি লগ করা যেকোনো কাস্টম ইভেন্ট দিয়ে ব্রেডক্রাম্ব লগগুলি পূর্ণ করা হয়, যার মধ্যে ইভেন্টের প্যারামিটার ডেটাও অন্তর্ভুক্ত থাকে। এই ডেটা ব্যবহারকারীর ক্র্যাশ, নন-ফ্যাটাল বা ANR ইভেন্টের দিকে পরিচালিত করে এমন একাধিক ক্রিয়া দেখাতে সাহায্য করতে পারে।
মনে রাখবেন যে আপনি Google Analytics ডেটা সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে ব্রেডক্রাম্ব লগ পূরণ করে এমন ডেটা অন্তর্ভুক্ত রয়েছে।
অপ্ট-ইন রিপোর্টিং সক্ষম করুন
ডিফল্টরূপে, Crashlytics আপনার সমস্ত অ্যাপ ব্যবহারকারীদের জন্য স্বয়ংক্রিয়ভাবে ক্র্যাশ রিপোর্ট সংগ্রহ করে। ব্যবহারকারীদের তাদের প্রেরিত ডেটার উপর আরও নিয়ন্ত্রণ দেওয়ার জন্য, আপনি স্বয়ংক্রিয় রিপোর্টিং অক্ষম করে এবং আপনার কোডে যখন আপনি চান তখনই Crashlytics এ ডেটা প্রেরণ করে অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন।
আপনার
Info.plistফাইলে একটি নতুন কী যোগ করে স্বয়ংক্রিয় সংগ্রহ বন্ধ করুন:- কী:
FirebaseCrashlyticsCollectionEnabled - মান:
false
- কী:
রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইড কল করে নির্বাচিত ব্যবহারকারীদের জন্য সংগ্রহ সক্ষম করুন। ওভাররাইড মান আপনার অ্যাপের পরবর্তী সমস্ত লঞ্চে বজায় থাকে যাতে Crashlytics স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য প্রতিবেদন সংগ্রহ করতে পারে।
সুইফট
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
অবজেক্টিভ-সি
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
যদি ব্যবহারকারী পরে ডেটা সংগ্রহ থেকে বেরিয়ে যান, তাহলে আপনি ওভাররাইড মান হিসেবে
falseপাস করতে পারেন, যা ব্যবহারকারী পরের বার অ্যাপ চালু করার সময় প্রযোজ্য হবে এবং সেই ব্যবহারকারীর জন্য পরবর্তী সমস্ত লঞ্চে এটি বজায় থাকবে।
ক্র্যাশ ইনসাইট ডেটা পরিচালনা করুন
ক্র্যাশ ইনসাইটস আপনার বেনামী স্ট্যাক ট্রেসগুলিকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে এবং আপনার সমস্যাটি কোনও বৃহত্তর ট্রেন্ডের অংশ কিনা তা আপনাকে জানিয়ে সমস্যা সমাধানে সহায়তা করে। অনেক সমস্যার জন্য, ক্র্যাশ ইনসাইটস এমনকি ক্র্যাশ ডিবাগ করতে সহায়তা করার জন্য সংস্থান সরবরাহ করে।
ক্র্যাশ ইনসাইটস সাধারণ স্থিতিশীলতার প্রবণতা সনাক্ত করতে সমষ্টিগত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার না করতে চান, তাহলে আপনি Firebase কনসোলে আপনার Crashlytics সমস্যা তালিকার শীর্ষে থাকা Crash Insights মেনু থেকে Crash Insights থেকে অপ্ট-আউট করতে পারেন।