Catch up on everthing we announced at this year's Firebase Summit. Learn more

ফায়ারবেস ক্র্যাশলিটিক্স এসডিকে আপগ্রেড করুন

আপনি এখন নতুন অফিসিয়াল Firebase Crashlytics SDK ব্যবহার করে আপনার অ্যাপে Crashlytics সেট আপ করতে পারেন, যা উন্নত API অফার করে যা অন্যান্য Firebase পণ্যের সাথে আরও সামঞ্জস্যপূর্ণ এবং ব্যবহারে আরও স্বজ্ঞাত।

এই নির্দেশিকাটি বর্ণনা করে কিভাবে লিগ্যাসি ফ্যাব্রিক SDK থেকে নতুন SDK-এ আপগ্রেড করা যায়। এটি নতুন API এর সাথে আসা পরিবর্তনগুলি বর্ণনা করে, পরিবর্তনের কারণ এবং প্রয়োজনে আপনার কোড কীভাবে আপডেট করতে হয়।

তুমি শুরু করার আগে

ধাপ 1: একটি Firebase কনফিগারেশন ফাইল যোগ করুন

  1. আপনার খোলা প্রকল্প সেটিংতোমার অ্যাপস কার্ড মাসে, অ্যাপ্লিকেশন জন্য আপনি কনফিগ ফাইল প্রয়োজন বান্ডিল আইডি নির্বাচন করুন।

  2. আপনার Firebase অ্যাপল প্ল্যাটফর্মের কনফিগ ফাইল (প্রাপ্ত ডাউনলোড GoogleService-Info.plist ক্লিক করুন GoogleService-Info.plist )।

  3. আপনার কনফিগার ফাইলটি আপনার Xcode প্রকল্পের রুটে সরান। অনুরোধ করা হলে, সমস্ত লক্ষ্যে কনফিগার ফাইল যোগ করতে নির্বাচন করুন।

আপনি আপনার প্রকল্পের একাধিক বান্ডল ID- র থাকে, তাহলে আপনি Firebase কনসোল প্রতিটি অ্যাপের নিজস্ব থাকতে পারে, ফলে যে নিবন্ধিত অ্যাপ্লিকেশন দিয়ে প্রতিটি বান্ডেলের আইডি সংশ্লিষ্ট করতে হবে GoogleService-Info.plist ফাইল।

পদক্ষেপ 2: Firebase Crashlytics SDK এর যোগ করুন

  1. Cocoapods সালে প্রতিস্থাপন Fabric এবং Crashlytics একটি সঙ্গে pods Firebase/Crashlytics সব লক্ষ্যমাত্রা মধ্যে শুঁটি।

    # Add the pod for Firebase Crashlytics
    pod 'Firebase/Crashlytics'
    # Recommended: Add the Firebase pod for Google Analytics pod 'Firebase/Analytics'
  2. সরাসরি আনইনস্টল করুন বা ফ্যাব্রিক থেকে তৃতীয় পক্ষের নির্ভরতাগুলি সরিয়ে দিন, যেমন ফ্যাব্রিক উত্তর এবং তৃতীয় পক্ষের কিট থেকে নির্ভরতা।

  3. ইনস্টল করুন এবং pods আপডেট করুন, তারপর আপনার খোলা .xcworkspace Xcode প্রকল্প দেখতে ফাইল:

    pod install
    open YOUR_PROJECT.xcworkspace

ধাপ 3: আপনার কোড আপডেট করুন

  1. Xcode-এ, আপনার অ্যাপ পুনর্নির্মাণ করুন, তারপর আপনার .xcworkspace ফাইলটি আবার খুলুন।

  2. নিম্নলিখিত SDK পরিবর্তনগুলি পর্যালোচনা করুন এবং আপনার কোডে যথাযথ আপডেট করুন:


Crashlytics এখন Firebase ইনস্টলেশন আইডির উপর ভিত্তি করে আইডি ঘোরায়।

Crashlytics Crashlytics ইনস্টলেশন UUID ব্যবহার করে আপনার অ্যাপের উদাহরণ শনাক্ত করতে এবং আপনার ব্যবহারকারীদের ডেটা তাদের ডিভাইসের সাথে সংযুক্ত করতে। পূর্বে, Crashlytics আপনার ব্যবহারকারীর ইন্সটলেশন UUID ঘোরায় যখন তাদের ডিভাইসের বিজ্ঞাপন আইডি পরিবর্তিত হয়। এখন, Crashlytics ব্যবহারকারীর Firebase ইনস্টলেশন ID (FID) এর উপর ভিত্তি করে ইনস্টলেশন UUID ঘোরায়। আরো তথ্যের জন্য, দর্শন Firebase ইনস্টলেশন ID- র পরিচালনা

পরিবর্তনের কারণ

FID ব্যবহার করা অন্যান্য Firebase SDK-এর সাথে সামঞ্জস্যপূর্ণ।


রান এবং আপলোড-প্রতীক স্ক্রিপ্ট এখন FirebaseCrashlytics-এ আছে।

আপনি এখন প্রবেশ করতে পারবেন run এবং upload-symbols নতুন থেকে স্ক্রিপ্ট FirebaseCrashlytics গ্রন্থাগার। নোট যে আপনি এখনও কল করতে পারেন upload-symbols আপনার বিল্ড প্রক্রিয়ায় যে কোন জায়গা থেকে ম্যানুয়ালি আপনার dSYMs আপলোড করুন।

উপরন্তু, তারেক এর API_KEY এবং BUILD_SECRET আর নতুন SDK এর অন্তর্ভুক্ত করা হয়। পরিবর্তে, Crashlytics এখন আপনার অ্যাপ্লিকেশনের ব্যবহার GoogleService-info.plist আপনার Firebase প্রকল্পের সঙ্গে আপনার app শরীক এবং আপনার ঐতিহাসিক ক্র্যাশ তথ্য ধরে রাখা।

ফ্যাব্রিক SDK

${PODS_ROOT}/Fabric/run API_KEY BUILD_SECRET
/path/to/pods/directory/Fabric/upload-symbols

Firebase Crashlytics SDK

${PODS_ROOT}/FirebaseCrashlytics/run
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols

পরিবর্তনের কারণ

Crashlytics আর নির্ভরতা হিসাবে ফ্যাব্রিক SDK ব্যবহার করে না তাই আমরা আমাদের CLI টুলগুলিকে একটি নতুন লাইব্রেরিতে নিয়ে যাচ্ছি৷


Crashlytics লাইব্রেরি এখন FirebaseCrashlytics নামে পরিচিত।

আপনার অ্যাপে, আপনার আমদানি পাথ আপডেট করুন:

ফ্যাব্রিক SDK

সুইফট

import Crashlytics

উদ্দেশ্য গ

@import Crashlytics

Firebase Crashlytics SDK

সুইফট

import FirebaseCrashlytics

উদ্দেশ্য গ

@import FirebaseCrashlytics

পরিবর্তনের কারণ

নাম আপডেট করা হচ্ছে Crashlytics গ্রন্থাগার এটি অন্যান্য Firebase লাইব্রেরি (যেমন, সঙ্গে সামঞ্জস্যপূর্ণ তোলে FirebaseFirestore এবং FirebaseAuth )।


FirebaseCrashlytics আর Fabric SDK-এর সাথে কাজ করে না।

এখন, FirebaseCrashlytics শুধুমাত্র Firebase Crashlytics SDK এর সঙ্গে সক্রিয়া করা যেতে পারে। আপনি এর একটি দৃষ্টান্ত আপ শুরু করতে পারেন FirebaseCrashlytics কল করে FirebaseApp.configure সুইফট অথবা [FIRApp configure] উদ্দেশ্য সি হবে।

আপনার মধ্যে application:didFinishLaunchingWithOptions , কল প্রতিস্থাপন Fabric.with এবং startWithAPIKey একটি কল সঙ্গে FirebaseApp :

ফ্যাব্রিক SDK

সুইফট

Fabric.with([Crashlytics.self])

উদ্দেশ্য গ

[Fabric with:@[[Crashlytics class]]];
+ startWithAPIKey:
+ startWithAPIKey:delegate:

Firebase Crashlytics SDK

সুইফট

FirebaseApp.configure()

উদ্দেশ্য গ

[FIRApp configure];

পরিবর্তনের কারণ

Crashlytics আরম্ভ করার জন্য নতুন পদ্ধতি ব্যবহার করা অন্যান্য ফায়ারবেস পরিষেবাগুলি কীভাবে শুরু করা হয় তার সাথে আরও সামঞ্জস্যপূর্ণ।


ক্র্যাশ এবং throwException পদ্ধতিগুলি সরানো হয়েছে।

নতুন SDK এর আর অন্তর্ভুক্ত crash বা throwException পদ্ধতি। পরিবর্তে, ব্যবহার fatalError সুইফট অথবা উদ্দেশ্য সি মধ্যে একটি খালি অ্যারে একটি ক্র্যাশ বলপূর্বক।

Firebase Crashlytics SDK

সুইফট

// Force a test crash
fatalError()

উদ্দেশ্য গ

// Force a test crash
@[][1];

পরিবর্তনের কারণ

বিভিন্ন কারণে বিভিন্ন ধরণের ক্র্যাশ ঘটতে পারে এবং এই পদ্ধতিগুলি স্পষ্টভাবে নির্দিষ্ট করেনি যে ফলাফল ক্র্যাশগুলি রানটাইম চলাকালীন বা আপনার অ্যাপের নেটিভ SDK-এ ঘটেছে কিনা৷


ShareInstance পদ্ধতির নাম এখন crashlytics.

নতুন SDK এর আর অন্তর্ভুক্ত sharedInstance পদ্ধতি। Crashlytics আরম্ভ করার জন্য ব্যবহার করুন crashlytics পরিবর্তে (জন্য রেফারেন্স ডকুমেন্টেশন পড়া সুইফট বা উদ্দেশ্য সি আরও তথ্যের জন্য)। আপনার অ্যাপের প্রতিনিধিতে, আপনার আরম্ভ করার স্ক্রিপ্ট আপডেট করুন:

ফ্যাব্রিক SDK

সুইফট

Crashlytics.sharedInstance()

উদ্দেশ্য গ

[Crashlytics sharedInstance];

Firebase Crashlytics SDK

সুইফট

Crashlytics.crashlytics()

উদ্দেশ্য গ

[FIRCrashlytics crashlytics];

পরিবর্তনের কারণ

অন্যান্য ফায়ারবেস SDK-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য আমরা ইনস্ট্যান্স গেটার পদ্ধতির নাম পরিবর্তন করেছি।


setUserIdentifier এখন setUserID। setUserName এবং setUserEmail সরানো হয়েছে।

পূর্বে, আপনি একটি নাম বা ইমেল একটি ক্র্যাশ ব্যবহার সঙ্গে যুক্ত স্থির করতে পারে setUserName এবং setUserEmail , কিন্তু এই পদ্ধতি আর সংজ্ঞায়িত করা হবে না। নতুন পছন্দের পদ্ধতি আপনার ব্যবহারকারীদের জন্য সেট ID- র ব্যবহার করা setUserID

ফ্যাব্রিক SDK

সুইফট

Crashlytics.sharedInstance().setUserIdentifier("user_id")

Crashlytics.sharedInstance().setUserEmail("user_email")

Crashlytics.sharedInstance().setUserName("user_name")

উদ্দেশ্য গ

[[Crashlytics sharedInstance] setUserIdentifier:@"user_id"];

[[Crashlytics sharedInstance] setUserEmail:@"user_email"];

[[Crashlytics sharedInstance] setUserName:@"user_name"];

Firebase Crashlytics SDK

সুইফট

Crashlytics.crashlytics().setUserID("user_id")

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] setUserID:@"user_id"];

পরিবর্তনের কারণ

আমরা পদ্ধতির নাম গৃহীত setUserID অন্যান্য Firebase API এবং সরিয়ে সামঞ্জস্যপূর্ণ হতে setUserName এবং setUserEmail Crashlytics মাধ্যমে সিলিকোন লগিং নিরুৎসাহিত করতে।


CLSLogv এবং CLSNSLogv লগিং ফাংশন দ্বারা প্রতিস্থাপিত হয়।

নতুন SDK এর আর অন্তর্ভুক্ত CLSLogv বা CLSNSLogv ফাংশন। করতে কাস্টম লগ বার্তা যোগ , নতুন লগিং পদ্ধতি ব্যবহার Crashlytics গ্রন্থাগার। উল্লেখ্য যে, নতুন পদ্ধতি আর মুদ্রণ stdout বা NSLog (আমরা একটি লেফাফা লেখার সুপারিশ করছি যেন আপনি এই আচরণ রাখতে চান তাহলে)।

ফ্যাব্রিক SDK

সুইফট

CLSLogv("%@, %@", getVaList([first_arg, second_arg]))

CLSNSLogv("%@, %@", getVaList([first_arg, second_arg]))

উদ্দেশ্য গ

CLSLog(@"%@, %@", first_arg, second_arg);
CLSNSLog(@"%@, %@", first_arg, second_arg);

CLSLogv(@"%@, %@", args_va_list);
CLSNSLogv(@"%@, %@", args_va_list);

CLS_LOG(@"%@, %@", first_arg, second_arg);

Firebase Crashlytics SDK

সুইফট

Crashlytics.crashlytics().log("\(first_arg), \(second_arg)")

Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList([first_arg, second_arg]))

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] log:@"first_arg, second_arg"];

[[FIRCrashlytics crashlytics] logWithFormat:@"%@, %@", first_arg, second_arg];

আপনি ব্যবহার করে থাকেন CLS_LOG , লগ বিবৃতি ফাইল নাম এবং লাইন সংখ্যা পেয়ে চালিয়ে যেতে একটি হেডার ফাইলে নিম্নলিখিত যোগ করুন:

#define CLS_LOG(__FORMAT__, ...) [[FIRCrashlytics crashlytics] logWithFormat:@"%s line %d $ " __FORMAT__, __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__]

পরিবর্তনের কারণ

নতুন পদ্ধতির জন্য দৃষ্টান্ত প্রয়োজন, যা কোড পরীক্ষা করা সহজ করে তোলে।


setCustomValue setObjectValue, setIntValue, setFloatValue, এবং setBoolValue প্রতিস্থাপন করছে।

কাস্টম সেটার পদ্ধতিগুলি আর নতুন SDK-এ অন্তর্ভুক্ত নেই৷ পূর্বে, আপনাকে পদ্ধতি ব্যবহার করতে পারে সেট কী / মান জোড়া আপনার ক্র্যাশ প্রতিবেদন সহ পাঠান। এখন, আপনি ব্যবহার করতে পারেন setCustomValue:forKey সমস্ত ডেটা ধরনের জন্য সেট কী / মান জোড়া জন্য।

ফ্যাব্রিক SDK

সুইফট

Crashlytics.sharedInstance().setObjectValue("value", forKey: "object_key")

Crashlytics.sharedInstance().setIntValue(100, forKey: "int_key")

Crashlytics.sharedInstance().setFloatValue(99.9, forKey: "float_key")

Crashlytics.sharedInstance().setBoolValue(true, forKey: "bool_key")

উদ্দেশ্য গ

[[Crashlytics sharedInstance] setObjectValue:@"key" forKey:@"object_key"];

[[Crashlytics sharedInstance] setIntValue:100 forKey:@"int_key"];

[[Crashlytics sharedInstance] setFloatValue:99.9 forKey:@"float_key"];

[[Crashlytics sharedInstance] setBoolValue:YES forKey:@"bool_key"];

Firebase Crashlytics SDK

সুইফট

Crashlytics.crashlytics().setCustomValue("value", forKey: "object_key")

Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

Crashlytics.crashlytics().setCustomValue(99.9, forKey: "float_key")

Crashlytics.crashlytics().setCustomValue(true, forKey: "bool_key")

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] setCustomValue:@"value" forKey:@"object_key"];

[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

[[FIRCrashlytics crashlytics] setCustomValue:@(99.9) forKey:@"float_key"];

[[FIRCrashlytics crashlytics] setCustomValue:@YES forKey:@"bool_key"];

পরিবর্তনের কারণ

নতুন পদ্ধতির নাম Crashlytics-এর জন্য অনন্য এবং এটি স্পষ্ট করে যে Crashlytics কী-মান সম্মত নয়।


recordCustomExceptionName:reason:frameArray: ব্যতিক্রম মডেল API দ্বারা প্রতিস্থাপিত হয়।

যদি আপনার অ্যাপটি একটি অ-নেটিভ পরিবেশে চলে (যেমন, জাভাস্ক্রিপ্ট বা ইউনিটি), আপনি আপনার অ্যাপের নেটিভ এক্সেপশন ফরম্যাটে ক্র্যাশ মেটাডেটা রিপোর্ট করতে ব্যতিক্রম মডেল API ব্যবহার করতে পারেন।

ফ্যাব্রিক SDK

সুইফট

যাক topFrame = CLSStackFrame() topFrame.symbol = "doSomethingBad" topFrame.fileName = "bad.cc" topFrame.lineNumber = 23

let middleFrame = CLSStackFrame()
middleFrame.symbol = "doOtherStuff"
middleFrame.fileName = "stuff.cc"
middleFrame.lineNumber = 23;

let bottomFrame = CLSStackFrame()
bottomFrame.symbol = "main"
bottomFrame.fileName = "main.cc"
bottomFrame.lineNumber = 123

Crashlytics.sharedInstance().recordCustomExceptionName("FooException",
                                                       reason: "There was a foo.",
                                                       frameArray: [topFrame, middleFrame, bottomFrame])

উদ্দেশ্য গ

CLSStackFrame *topFrame = [[CLSStackFrame alloc] init];
topFrame.symbol = @"doSomethingBad";
topFrame.fileName = @"bad.cc";
topFrame.lineNumber = 23;

CLSStackFrame *middleFrame = [[CLSStackFrame alloc] init];
middleFrame.symbol = @"doOtherStuff";
middleFrame.fileName = @"stuff.cc";
middleFrame.lineNumber = 23;

CLSStackFrame *bottomFrame = [[CLSStackFrame alloc] init];
bottomFrame.symbol = @"main";
bottomFrame.fileName = @"main.cc";
bottomFrame.lineNumber = 123;

[[Crashlytics sharedInstance] recordCustomExceptionName:@"FooException"
                                                 reason:@"There was a foo."
                                             frameArray:@[topFrame, middleFrame, bottomFrame]];

Firebase Crashlytics SDK

সুইফট

var  ex = ExceptionModel.init(name:"FooException", reason:"There was a foo.")
ex.stackTrace = [
  StackFrame.init(symbol:"makeError" fileName:"handler.js" lineNumber:495),
  StackFrame.init(symbol:"then" fileName:"routes.js" lineNumber:102),
  StackFrame.init(symbol:"main" fileName:"app.js" lineNumber:12),
]

crashlytics.record(exceptionModel:ex)

উদ্দেশ্য গ

model.stackTrace = @[
  [FIRStackFrame stackFrameWithSymbol:@"makeError" fileName:@"handler.js" lineNumber:495],
  [FIRStackFrame stackFrameWithSymbol:@"then" fileName:@"routes.js" lineNumber:102],
  [FIRStackFrame stackFrameWithSymbol:@"main" fileName:@"app.js" lineNumber:12],
];

পরিবর্তনের কারণ

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



CrashlyticsDelegate ক্র্যাশ রিপোর্ট পরিচালনার জন্য পৃথক পদ্ধতি দ্বারা প্রতিস্থাপিত হয়।

আপনি এখন ক্র্যাশ রিপোর্ট পরিচালনার জন্য পদ্ধতির একটি নতুন সেট ব্যবহার করতে পারেন:

  • didFinishLaunchingWithOptions এখন নতুন হ্যান্ডলার দ্বারা প্রতিস্থাপিত হয় checkForUnsentReportsWithCompletion

  • crashlyticsDidDetectReportForLastExecution এখন দ্বারা প্রতিস্থাপিত হয় didCrashDuringPreviousExecutiondidCrashDuringPreviousExecution আপনি সুবিধামত ক্র্যাশ যে আপনার অ্যাপ শেষ রান সময় ঘটে সনাক্ত করতে পারেন।

  • crashlyticsCanUseBackgroundSessions এখন স্থায়ীভাবে সত্যতে সেট করা থাকে।

  • আমরা পরিদর্শন আর সমর্থন CLSReport প্রতিনিধি বস্তুর।

ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে সূচনার সময় ক্র্যাশ প্রতিবেদনগুলি আপলোড করে, আপনি পূর্বে পেরেছিলাম didFinishLaunchingWithOptions আপনার ব্যবহারকারীদের জানাতে নির্বাচন ক্র্যাশ প্রতিবেদন করতে। এখন, আপনি যখন কল setCrashlyticsCollectionEnabled=false স্বয়ংক্রিয় ক্র্যাশ প্রতিবেদন বন্ধ করতে, Crashlytics আহ্বান checkForUnsentReportsWithCompletion আপনার ব্যবহারকারীদের থাকুক বা না থাকুক ক্র্যাশ প্রতিবেদনগুলি যখন আপনার অ্যাপ্লিকেশন ক্র্যাশ পাঠাতে চয়ন করতে দেয় পারে। তারপর আপনি কল করতে পারেন sendUnsentReports যদি ব্যবহারকারী opts বা deleteUnsentReports তাহলে ব্যবহারকারী অনির্বাচন করবে।

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

ফ্যাব্রিক SDK

সুইফট

class YourClassName: CrashlyticsDelegate {

  func application(_ application: UIApplication, didFinishLaunchingWithOptions

    ...
    Crashlytics.sharedInstance().delegate = self
    ...

    return true
  }

  func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void) {
    /* ... handle unsent reports */
  }

  func crashlyticsCanUseBackgroundSessions(_ crashlytics: Crashlytics) -> Bool {
    return true
  }
}

উদ্দেশ্য গ

@interface YourClassName <CrashlyticsDelegate> ()
@end

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  ...
  [[Crashlytics sharedInstance] setDelegate:self];
  ...

  return YES;
}

-(void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL submit))completionHandler {
  // ... handle unsent reports
}

-(BOOL)crashlyticsCanUseBackgroundSessions:(Crashlytics *)crashlytics {
  return YES;
}

@end

Firebase Crashlytics SDK

সুইফট

/* You must set setCrashlyticsCollectionEnabled to false in order to use
checkForUnsentReportsWithCompletion. */

Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)

Crashlytics.crashlytics().checkForUnsentReports { hasUnsentReport in
  let hasUserConsent = false
  // ...get user consent.

  if hasUserConsent && hasUnsentReport {
    Crashlytics.crashlytics().sendUnsentReports()
  } else {
    Crashlytics.crashlytics().deleteUnsentReports()
  }
}

// Detect when a crash happens during your app's last run.
if Crashlytics.crashlytics().didCrashDuringPreviousExecution() {
  // ...notify the user.
}

উদ্দেশ্য গ

/* You must set setCrashlyticsCollectionEnabled to false in order to use
checkForUnsentReportsWithCompletion. */

[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:false];

[[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL hasUnsentReports) {
  BOOL hasConsent = false;
  // ...get consent from user.

  if (hasConsent && hasUnsentReports) {
    [[FIRCrashlytics crashlytics] sendUnsentReports];
  } else {
    [[FIRCrashlytics crashlytics] deleteUnsentReports];
  }
}];

// Detect when a crash happens during your app's last run.
if ([[FIRCrashlytics crashlytics] didCrashDuringPreviousExecution]) {
  // ...notify the user.
}

পরিবর্তনের কারণ

পদ্ধতির নতুন সেট আপনাকে আপনার অ্যাপের ক্র্যাশ রিপোর্টিং আচরণের উপর আরও নিয়ন্ত্রণ দেয়। এছাড়াও, Crashlytics শুরু করার আগে আপনাকে আর CrashlyticsDelegate সেট আপ করতে হবে না।


firebase_crashlytics_collection_enabled এর পরিবর্তে FirebaseCrashlyticsCollectionEnabled করা হয়েছে।

আপনি সেট যখন FirebaseCrashlyticsCollectionEnabled আপনার মিথ্যাতে Info.plist , Crashlytics স্বয়ংক্রিয়ভাবে সূচনার সময় ক্র্যাশ প্রতিবেদন পাঠিয়ে বন্ধ করে দেয়। আপনার অ্যাপ্লিকেশনের প্রথমবার চালনার পরে, আপনি এছাড়াও দ্বারা অক্ষম ক্র্যাশ প্রতিবেদন সেটিং করতে setCrashlyticsCollectionEnabled করার false আপনার Crashlytics.h কিন্তু মনে রাখবেন যে setCrashlyticsCollectionEnabled এই ফ্ল্যাগ ওভাররাইড করে।

প্রতিস্থাপন দ্বারা স্বয়ংক্রিয় সংগ্রহে বন্ধ করুন firebase_crashlytics_collection_enabled আপনার গুরুত্বপূর্ণ Info.plist :

  • কী: FirebaseCrashlyticsCollectionEnabled

  • মান: false

আপনার অ্যাপের প্রথমবার চালনার পরে, আপনি আপনার নিচের টি যোগ করে স্বয়ংক্রিয় সংগ্রহে বন্ধ করে দিতে পারেন Crashlytics.h :

Firebase Crashlytics SDK

সুইফট

// setCrashlyticsCollectionEnabled is set to true by default.
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)

উদ্দেশ্য গ

// setCrashlyticsCollectionEnabled is set to true by default.
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:false];

পরিবর্তনের কারণ

আপনি যখন স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং অক্ষম করেন তখন ক্র্যাশলিটিক্স কীভাবে অপ্রেরিত ক্র্যাশ রিপোর্টগুলি পরিচালনা করে তার উপর এখন আপনার আরও নিয়ন্ত্রণ রয়েছে৷ আপনি সেট করার পর FirebaseCrashlyticsCollectionEnabled মিথ্যাতে, আপনি কল করতে পারেন checkForUnsentReportsWithCompletion আপনার অ্যাপে কোথাও এবং পারেন পাঠাতে বা ডিলিট অপ্রেরিত রিপোর্ট থেকে, কি আপনার ব্যবহারকারী তা চয়ন উপর নির্ভর করে।


এখন, Crashlytics সর্বদা ব্যাকগ্রাউন্ড সেশন ব্যবহার করে।

পূর্বে, আপনি পটভূমির সেশন বন্ধ করে দেন তবে আপনি সেটিং দ্বারা আপনার অ্যাপে এটা সমর্থন করতে চান না পারে crashlyticsCanUseBackgroundSessions মিথ্যাতে। এখন, crashlyticsCanUseBackgroundSessions সবসময় সত্য সেট করা হয়।

পরিবর্তনের কারণ

আমরা আর 7.0 এর নিচের iOS সংস্করণ বা OS X 10.9 এর নিচের macOS সংস্করণ সমর্থন করি না, যা ব্যাকগ্রাউন্ড সেশন সমর্থন করে না।


Crashlytics শুধুমাত্র Google Analytics দ্বারা সংগৃহীত ডেটা ব্যবহার করতে পারে।

Firebase Crashlytics SDK-তে আপগ্রেড করার পরে আপনি Fabric Answers দিয়ে আর ডেটা সংগ্রহ করতে পারবেন না। ক্র্যাশ-মুক্ত ব্যবহারকারী এবং ব্রেডক্রাম্বের জন্য মেট্রিক্স পেতে, পরিবর্তে Google Analytics ব্যবহার করুন। মনে রাখবেন আপনার ঐতিহাসিক উত্তরের ডেটা Firebase-এ স্থানান্তরিত হতে পারে না।

পরিদর্শন Google Analytics ব্যবহার স্টার্ট আপনার অ্যাপ Google Analytics জুড়ুন করা শিখতে।

পরিবর্তনের কারণ

আপনার ক্র্যাশ ডেটা সম্পর্কে আরও অন্তর্দৃষ্টি পেতে আপনাকে সাহায্য করার জন্য আমরা এখন Google Analytics অফার করি। Analytics-এর সাহায্যে আপনি Firebase কনসোলে আপনার অ্যাপের পরিসংখ্যান সংগ্রহ করা চালিয়ে যেতে পারেন।

পরবর্তী পদক্ষেপ