| প্ল্যাটফর্ম নির্বাচন করুন: | iOS+ অ্যান্ড্রয়েড ফ্লাটার ইউনিটি |
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"];
একমাত্র প্যারামিটার হিসেবে একটি NSDictionary ব্যবহার করে setCustomKeysAndValues মেথডের মাধ্যমে একসাথে অনেকগুলো কী-ভ্যালু পেয়ার যোগ করুন:
সুইফট
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() ফাংশনটি অবজেক্টের জন্য আপনার সংজ্ঞায়িত করা description প্রপার্টিটি রিটার্ন করে। উদাহরণস্বরূপ:
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 ইনস্ট্যান্স প্রপার্টিটি ওভাররাইড করতে হবে। উদাহরণস্বরূপ:
[[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 রেকর্ডগুলো মুছে যায় না। যদি কোনো ইউজার আইডির সাথে যুক্ত রেকর্ড ডিলিট করার প্রয়োজন হয়, তাহলে ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করুন ।
অ-মারাত্মক ব্যতিক্রমগুলি রিপোর্ট করুন
আপনার অ্যাপের ক্র্যাশগুলো স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, 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 অবজেক্টের মধ্যে থাকা ডেটা কী-ভ্যালু পেয়ারে রূপান্তরিত হয় এবং একটি স্বতন্ত্র ইস্যুর মধ্যে keys/logs বিভাগে প্রদর্শিত হয়।
লগ এবং কাস্টম কী
ক্র্যাশ রিপোর্টের মতোই, আপনি NSError এ প্রাসঙ্গিক তথ্য যোগ করার জন্য লগ এবং কাস্টম কী যুক্ত করতে পারেন। তবে, ক্র্যাশ এবং লগ করা ত্রুটির সাথে কোন লগগুলো সংযুক্ত থাকে, তার মধ্যে একটি পার্থক্য রয়েছে। যখন একটি ক্র্যাশ ঘটে এবং অ্যাপটি পুনরায় চালু করা হয়, তখন Crashlytics ডিস্ক থেকে সেই লগগুলোই সংগ্রহ করে যা ঠিক ক্র্যাশের সময় পর্যন্ত লেখা হয়েছিল। যখন আপনি একটি NSError লগ করেন, তখন অ্যাপটি সঙ্গে সঙ্গে বন্ধ হয়ে যায় না। যেহেতু Crashlytics শুধুমাত্র পরবর্তী অ্যাপ চালুর সময় লগ করা ত্রুটির রিপোর্ট পাঠায় এবং ডিস্কে লগের জন্য বরাদ্দ করা জায়গার পরিমাণ সীমিত রাখতে হয়, তাই একটি NSError রেকর্ড হওয়ার পরেও যথেষ্ট পরিমাণে লগ করা সম্ভব, যার ফলে Crashlytics ডিভাইস থেকে রিপোর্ট পাঠানোর আগেই সমস্ত প্রাসঙ্গিক লগ মুছে যায়। আপনার অ্যাপে NSErrors লগ করার সময় এবং লগ ও কাস্টম কী ব্যবহার করার সময় এই ভারসাম্যটি মাথায় রাখুন।
কর্মক্ষমতা বিবেচনা
মনে রাখবেন যে, একটি NSError লগ করা বেশ ব্যয়বহুল হতে পারে। আপনি যখন কলটি করেন, তখন Crashlytics স্ট্যাক আনওয়াইন্ডিং নামক একটি প্রক্রিয়ার মাধ্যমে বর্তমান থ্রেডের কল স্ট্যাক ক্যাপচার করে। এই প্রক্রিয়াটি সিপিইউ এবং আই/ও নিবিড় হতে পারে, বিশেষ করে সেইসব আর্কিটেকচারে যেগুলো DWARF আনওয়াইন্ডিং সমর্থন করে (arm64 এবং x86)। আনওয়াইন্ডিং সম্পূর্ণ হওয়ার পর, তথ্যটি সিনক্রোনাসভাবে ডিস্কে লেখা হয়। এর ফলে পরবর্তী লাইনটি ক্র্যাশ করলেও ডেটা হারানোর ঝুঁকি থাকে না।
যদিও ব্যাকগ্রাউন্ড থ্রেডে এই এপিআইটি কল করা নিরাপদ, মনে রাখবেন যে এই কলটিকে অন্য কোনো কিউতে প্রেরণ করলে বর্তমান স্ট্যাক ট্রেসের প্রেক্ষাপট হারিয়ে যায়।
NSExceptions এর ব্যাপারে কী বলবেন?
Crashlytics সরাসরি NSException ইনস্ট্যান্স লগিং এবং রেকর্ড করার কোনো সুবিধা দেয় না। সাধারণভাবে বলতে গেলে, কোকোয়া এবং কোকোয়া টাচ এপিআইগুলো এক্সেপশন-সেফ নয়। এর মানে হলো, অত্যন্ত সতর্কতার সাথে ব্যবহার করা হলেও @catch এর ব্যবহার আপনার প্রসেসে খুব গুরুতর অনাকাঙ্ক্ষিত পার্শ্বপ্রতিক্রিয়া সৃষ্টি করতে পারে। আপনার কোডে কখনোই @catch স্টেটমেন্ট ব্যবহার করা উচিত নয়। এই বিষয়ে অ্যাপলের ডকুমেন্টেশন দেখুন।
স্ট্যাক ট্রেস কাস্টমাইজ করুন
আপনার অ্যাপ যদি কোনো নন-নেটিভ পরিবেশে (যেমন C++ বা Unity) চলে, তাহলে আপনি আপনার অ্যাপের নেটিভ এক্সেপশন ফরম্যাটে ক্র্যাশ মেটাডেটা রিপোর্ট করার জন্য এক্সেপশন মডেল এপিআই (Exception Model API) ব্যবহার করতে পারেন। রিপোর্ট করা এক্সেপশনগুলোকে নন-ফেটাল (non-fatal) হিসেবে চিহ্নিত করা হয়।
সুইফট
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];
ব্রেডক্রাম্ব লগ পান
কোনো ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে একজন ব্যবহারকারী আপনার অ্যাপের সাথে কী ধরনের ইন্টারঅ্যাকশন করেছেন, তা ব্রেডক্রাম্ব লগ থেকে আরও ভালোভাবে বোঝা যায়। কোনো সমস্যা পুনরুৎপাদন এবং ডিবাগ করার সময় এই লগগুলো সহায়ক হতে পারে।
ব্রেডক্রাম্ব লগ গুগল অ্যানালিটিক্স দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগ পেতে হলে আপনাকে আপনার ফায়ারবেস প্রজেক্টের জন্য গুগল অ্যানালিটিক্স সক্রিয় করতে হবে এবং আপনার অ্যাপে Google Analytics জন্য ফায়ারবেস এসডিকে (SDK) যোগ করতে হবে । এই শর্তগুলো পূরণ হয়ে গেলে, আপনি যখন কোনো ইস্যুর বিবরণ দেখবেন, তখন লগস ট্যাবের মধ্যে ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগ স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়ে যাবে।
Analytics এসডিকে স্বয়ংক্রিয়ভাবে ` screen_view ইভেন্টটি লগ করে , যা ব্রেডক্রাম্ব লগ-কে ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে দেখা স্ক্রিনগুলির একটি তালিকা দেখাতে সক্ষম করে। একটি screen_view ব্রেডক্রাম্ব লগে একটি firebase_screen_class প্যারামিটার থাকে।
ব্যবহারকারীর সেশনের মধ্যে আপনি ম্যানুয়ালি লগ করা যেকোনো কাস্টম ইভেন্ট , ইভেন্টের প্যারামিটার ডেটা সহ, ব্রেডক্রাম্ব লগে যুক্ত হয়। এই ডেটা একটি ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের দিকে পরিচালিত ব্যবহারকারীর ধারাবাহিক কার্যকলাপ দেখাতে সাহায্য করতে পারে।
মনে রাখবেন যে আপনি Google Analytics ডেটার সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে ব্রেডক্রাম্ব লগ পূরণকারী ডেটাও অন্তর্ভুক্ত।
অপ্ট-ইন রিপোর্টিং সক্ষম করুন
ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার অ্যাপের সকল ব্যবহারকারীর জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে। ব্যবহারকারীদের পাঠানো ডেটার উপর আরও বেশি নিয়ন্ত্রণ দিতে, আপনি স্বয়ংক্রিয় রিপোর্টিং নিষ্ক্রিয় করে অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন এবং শুধুমাত্র আপনার কোডে নিজের ইচ্ছামত Crashlytics ডেটা পাঠাতে পারেন।
আপনার
Info.plistফাইলে একটি নতুন কী যোগ করে স্বয়ংক্রিয় সংগ্রহ বন্ধ করুন:- Key:
FirebaseCrashlyticsCollectionEnabled - মান:
false
- Key:
রানটাইমে Crashlytics ডেটা কালেকশন ওভাররাইড কল করে নির্দিষ্ট ব্যবহারকারীদের জন্য ডেটা সংগ্রহ সক্ষম করুন। এই ওভাররাইড মানটি আপনার অ্যাপের পরবর্তী সমস্ত লঞ্চে অপরিবর্তিত থাকে, ফলে Crashlytics স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য রিপোর্ট সংগ্রহ করতে পারে।
সুইফট
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
উদ্দেশ্য-সি
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
যদি ব্যবহারকারী পরবর্তীতে ডেটা সংগ্রহ থেকে বিরত থাকেন, তাহলে আপনি ওভাররাইড ভ্যালু হিসেবে
falseপাস করতে পারেন, যা ব্যবহারকারী পরবর্তীবার অ্যাপটি চালু করার সময় প্রযোজ্য হবে এবং সেই ব্যবহারকারীর জন্য এর পরের সমস্ত লঞ্চ জুড়ে স্থায়ী থাকবে।
ক্র্যাশ ইনসাইটস ডেটা পরিচালনা করুন
ক্র্যাশ ইনসাইটস আপনার অ্যানোনিমাইজড স্ট্যাক ট্রেসকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে সমস্যা সমাধানে সাহায্য করে এবং আপনার সমস্যাটি কোনো বৃহত্তর প্রবণতার অংশ কিনা তা জানিয়ে দেয়। অনেক সমস্যার ক্ষেত্রে, ক্র্যাশ ইনসাইটস এমনকি ক্র্যাশটি ডিবাগ করতে সাহায্য করার জন্য রিসোর্সও সরবরাহ করে।
ক্র্যাশ ইনসাইটস সাধারণ স্থিতিশীলতার প্রবণতা শনাক্ত করতে একত্রিত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার করতে না চান, তাহলে Firebase কনসোলে আপনার Crashlytics ইস্যু তালিকার শীর্ষে থাকা ক্র্যাশ ইনসাইটস মেনু থেকে এটি ব্যবহার করা থেকে বিরত থাকতে পারেন।
পরবর্তী পদক্ষেপ
- উন্নত বিশ্লেষণ এবং বিভিন্ন ফিচারের জন্য, যেমন আপনার ডেটা কোয়েরি করা, কাস্টম ড্যাশবোর্ড তৈরি করা এবং কাস্টম অ্যালার্ট সেট আপ করার জন্য, আপনার ডেটা BigQuery বা Cloud Logging এ এক্সপোর্ট করুন ।