Firebase Crashlytics SDK में अपग्रेड करें

अब आप नए आधिकारिक Firebase Crashlytics SDK का उपयोग करके अपने ऐप में Crashlytics सेट कर सकते हैं, जो बेहतर API प्रदान करता है जो अन्य Firebase उत्पादों के साथ अधिक संगत और उपयोग में अधिक सहज होते हैं।

यह मार्गदर्शिका बताती है कि पुराने फैब्रिक एसडीके से नए एसडीके में कैसे अपग्रेड किया जाए। यह नए एपीआई के साथ आने वाले परिवर्तनों का वर्णन करता है, परिवर्तनों का कारण, और यदि आवश्यक हो तो अपने कोड को कैसे अपडेट करें।

शुरू करने से पहले

चरण 1: एक Firebase विन्यास फाइल जोड़े

  1. अपने खोलें परियोजना सेटिंग्सआपके एप्लिकेशन कार्ड में, ऐप्लिकेशन है, आप एक कॉन्फ़िग फ़ाइल की जरूरत के बंडल आईडी का चयन करें।

  2. अपने Firebase एप्पल प्लेटफार्मों कॉन्फ़िग फ़ाइल (प्राप्त करने के लिए डाउनलोड GoogleService-Info.plist क्लिक करें GoogleService-Info.plist )।

  3. अपनी कॉन्फ़िगरेशन फ़ाइल को अपने एक्सकोड प्रोजेक्ट की जड़ में ले जाएं। संकेत मिलने पर, कॉन्फ़िग फ़ाइल को सभी लक्ष्यों में जोड़ने के लिए चुनें.

आप अपने प्रोजेक्ट में कई बंडल आईडी है, तो आप Firebase सांत्वना प्रत्येक अनुप्रयोग का अपना हो सकता है इतना है कि में एक पंजीकृत अनुप्रयोग के साथ प्रत्येक बंडल आईडी संबद्ध करना चाहिए GoogleService-Info.plist फ़ाइल।

चरण 2: Firebase Crashlytics एसडीके जोड़े

  1. Cocoapods में, की जगह Fabric और Crashlytics एक साथ फली Firebase/Crashlytics सभी लक्ष्यों में फली।

    # Add the pod for Firebase Crashlytics
    pod 'Firebase/Crashlytics'
    # Recommended: Add the Firebase pod for Google Analytics pod 'Firebase/Analytics'
  2. फैब्रिक से थर्ड पार्टी डिपेंडेंसीज को सीधे अनइंस्टॉल या हटा दें, जैसे कि फैब्रिक आंसर और थर्ड पार्टी किट से डिपेंडेंसी।

  3. स्थापित करें और फली अद्यतन करते हैं, तो अपने को खोलने .xcworkspace Xcode में परियोजना को देखने के लिए फ़ाइल:

    pod install
    open YOUR_PROJECT.xcworkspace

चरण 3: अपने कोड अपडेट करें

  1. Xcode में, अपने ऐप का पुनर्निर्माण करें, फिर अपनी .xcworkspace फ़ाइल को फिर से खोलें।

  2. निम्नलिखित SDK परिवर्तनों की समीक्षा करें और अपने कोड में उपयुक्त अपडेट करें:


Crashlytics अब Firebase इंस्टॉलेशन आईडी के आधार पर आईडी को घुमाता है।

Crashlytics Crashlytics इंस्टालेशन UUID का उपयोग आपके ऐप के इंस्टेंस की पहचान करने और आपके उपयोगकर्ताओं के डेटा को उनके डिवाइस से जोड़ने के लिए करता है। पहले, Crashlytics ने आपके उपयोगकर्ता के इंस्टॉलेशन UUID को तब घुमाया जब उनके डिवाइस की विज्ञापन आईडी बदल गई। अब, Crashlytics उपयोगकर्ता के Firebase इंस्टॉलेशन आईडी (FID) के आधार पर इंस्टॉलेशन UUID को घुमाता है। अधिक जानकारी के लिए यात्रा Firebase स्थापना आईडी की व्यवस्था करें

बदलाव के कारण

FID का उपयोग करना अन्य Firebase SDK के साथ संगत है।


रन और अपलोड-प्रतीक स्क्रिप्ट अब FirebaseCrashlytics में हैं।

अब आप उपयोग कर सकते हैं run और upload-symbols नई स्क्रिप्ट FirebaseCrashlytics पुस्तकालय। ध्यान दें कि आप अभी भी कॉल कर सकते हैं upload-symbols अपनी निर्माण प्रक्रिया में कहीं से भी करने के लिए मैन्युअल रूप से अपने dSYMs अपलोड करें।

इसके अलावा, कपड़ा के API_KEY और BUILD_SECRET अब नए SDK में शामिल कर रहे हैं। इसके बजाय, Crashlytics अब आपको अपने ऐप्लिकेशन की का उपयोग करता GoogleService-info.plist अपने Firebase परियोजना के साथ अपने अनुप्रयोग संबद्ध करने और अपने ऐतिहासिक क्रैश डेटा बनाए रखने के लिए।

कपड़ा एसडीके

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

फायरबेस क्रैशलिटिक्स एसडीके

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

बदलाव के कारण

Crashlytics अब एक निर्भरता के रूप में फ़ैब्रिक SDK का उपयोग नहीं करता है, इसलिए हम अपने CLI टूल को एक नई लाइब्रेरी में स्थानांतरित कर रहे हैं।


Crashlytics लाइब्रेरी को अब FirebaseCrashlytics कहा जाता है।

अपने ऐप्लिकेशन में, अपने आयात पथ अपडेट करें:

कपड़ा एसडीके

तीव्र

import Crashlytics

उद्देश्य सी

@import Crashlytics

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

import FirebaseCrashlytics

उद्देश्य सी

@import FirebaseCrashlytics

बदलाव के कारण

का नाम अपडेट करना Crashlytics पुस्तकालय यह अन्य Firebase पुस्तकालयों (जैसे, के साथ संगत बनाता FirebaseFirestore और FirebaseAuth )।


FirebaseCrashlytics अब फ़ैब्रिक SDK के साथ काम नहीं करता है।

अब, FirebaseCrashlytics केवल Firebase Crashlytics SDK के साथ प्रारंभ किया जा सकता है। आप का एक उदाहरण के लिए शुरू कर सकते हैं FirebaseCrashlytics फोन करके FirebaseApp.configure स्विफ्ट में या [FIRApp configure] ऑब्जेक्टिव-सी में।

अपने भीतर application:didFinishLaunchingWithOptions , के लिए कॉल की जगह Fabric.with और startWithAPIKey के लिए एक कॉल के साथ FirebaseApp :

कपड़ा एसडीके

तीव्र

Fabric.with([Crashlytics.self])

उद्देश्य सी

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

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

FirebaseApp.configure()

उद्देश्य सी

[FIRApp configure];

बदलाव के कारण

Crashlytics को प्रारंभ करने के लिए नए तरीकों का उपयोग करना अन्य Firebase सेवाओं को प्रारंभ करने के तरीके से अधिक संगत है।


क्रैश और थ्रो एक्सेप्शन विधियाँ हटा दी जाती हैं।

नई एसडीके नहीं रह गया है शामिल crash या throwException तरीकों। इसके बजाय, का उपयोग fatalError स्विफ्ट में या ऑब्जेक्टिव-सी में एक खाली सरणी एक दुर्घटना के लिए मजबूर करने।

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

// Force a test crash
fatalError()

उद्देश्य सी

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

बदलाव के कारण

विभिन्न प्रकार के क्रैश कई कारणों से हो सकते हैं, और इन विधियों ने स्पष्ट रूप से यह निर्दिष्ट नहीं किया कि परिणामी क्रैश रनटाइम के दौरान हुए या आपके ऐप के मूल SDK में।


साझा इंस्टेंस विधि को अब क्रैशलाईटिक्स नाम दिया गया है।

नई एसडीके नहीं रह गया है शामिल हैं sharedInstance विधि। Crashlytics प्रारंभ करने के लिए, उपयोग crashlytics बजाय (के लिए संदर्भ दस्तावेज़ पढ़ें स्विफ्ट या ऑब्जेक्टिव-सी अधिक जानकारी के लिए)। अपने ऐप के प्रतिनिधि में, अपनी प्रारंभिक स्क्रिप्ट अपडेट करें:

कपड़ा एसडीके

तीव्र

Crashlytics.sharedInstance()

उद्देश्य सी

[Crashlytics sharedInstance];

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

Crashlytics.crashlytics()

उद्देश्य सी

[FIRCrashlytics crashlytics];

बदलाव के कारण

हमने अन्य फायरबेस एसडीके के अनुरूप होने के लिए इंस्टेंस गेटर विधि का नाम बदल दिया।


setUserIdentifier अब setUserID है। setUserName और setUserEmail हटा दिए जाते हैं।

इससे पहले, आप एक नाम या ईमेल एक दुर्घटना के उपयोग से संबंधित सेट कर सकते हैं setUserName और setUserEmail , लेकिन इन तरीकों को अब परिभाषित किया जाएगा। करने के लिए नए पसंदीदा तरीका अपने उपयोगकर्ताओं के लिए सेट आईडी का उपयोग है setUserID

कपड़ा एसडीके

तीव्र

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"];

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

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

उद्देश्य सी

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

बदलाव के कारण

हम विधि नाम को अपनाया setUserID अन्य Firebase एपीआई और निकाले गए के अनुरूप होना करने के लिए setUserName और setUserEmail Crashlytics के माध्यम से PII प्रवेश करने को हतोत्साहित करने के।


CLSLogv और CLSNSLogv को लॉगिंग फ़ंक्शन द्वारा प्रतिस्थापित किया जाता है।

नई एसडीके नहीं रह गया है शामिल हैं CLSLogv या CLSNSLogv कार्य करता है। करने के लिए कस्टम लॉग संदेशों को जोड़ने , में नए प्रवेश तरीकों का उपयोग Crashlytics पुस्तकालय। ध्यान दें कि नए तरीकों को अब करने के लिए प्रिंट stdout या NSLog (हम एक आवरण लेखन की सलाह देते हैं आप इस व्यवहार रखना चाहते हैं)।

कपड़ा एसडीके

तीव्र

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);

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

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 की जगह ले रहा है।

कस्टम सेटर विधियां अब नए एसडीके में शामिल नहीं हैं। इससे पहले, आप के लिए तरीकों का उपयोग कर सकता है सेट कुंजी / मान जोड़े अपने क्रैश रिपोर्ट के साथ भेजा जाने। अब, आप उपयोग कर सकते हैं setCustomValue:forKey सभी डेटा प्रकार के लिए सेट कुंजी / मान जोड़े के लिए।

कपड़ा एसडीके

तीव्र

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"];

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

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 कुंजी-मान के अनुरूप नहीं है।


रिकॉर्ड कस्टम अपवादनाम: कारण: फ्रेमअरे: अपवाद मॉडल एपीआई द्वारा प्रतिस्थापित किया गया है।

यदि आपका ऐप गैर-देशी वातावरण (जैसे, जावास्क्रिप्ट या यूनिटी) में चलता है, तो आप अपने ऐप के मूल अपवाद प्रारूप में क्रैश मेटाडेटा की रिपोर्ट करने के लिए अपवाद मॉडल एपीआई का उपयोग कर सकते हैं।

कपड़ा एसडीके

तीव्र

चलो topFrame = CLStackFrame () 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]];

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

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 । उदाहरण के लिए, यदि आपके उपयोगकर्ताओं ने आपको क्रैश रिपोर्ट भेजने के लिए पूर्ण स्वीकृति या अस्वीकृति दी है, तो आप स्थायी रूप से क्रैश रिपोर्टिंग सेट अप या अक्षम करना चाह सकते हैं। ध्यान रखें कि यदि आपका ऐप अपने जीवनचक्र की शुरुआत में ही क्रैश हो जाता है, तो आपको कभी भी क्रैश रिपोर्ट प्राप्त नहीं हो सकती है।

कपड़ा एसडीके

तीव्र

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

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

/* 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 :

फायरबेस क्रैशलिटिक्स एसडीके

तीव्र

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

उद्देश्य सी

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

बदलाव के कारण

अब आपके पास इस पर अधिक नियंत्रण है कि जब आप स्वचालित क्रैश रिपोर्टिंग को अक्षम करते हैं तो Crashlytics अप्रेषित क्रैश रिपोर्ट को कैसे संभालता है। आप सेट करने के बाद FirebaseCrashlyticsCollectionEnabled गलत पर, आप कॉल कर सकते हैं checkForUnsentReportsWithCompletion अपने एप्लिकेशन में कहीं और या तो भेज सकते हैं या नष्ट नहीं भेजे गए रिपोर्ट के अलावा, क्या अपने उपयोगकर्ता चुन पर निर्भर करता है।


अब, Crashlytics हमेशा बैकग्राउंड सेशन का उपयोग करता है।

इससे पहले, आप पृष्ठभूमि सत्र बंद कर देते हैं, तो आप सेट करके अपने ऐप्लिकेशन में इसे समर्थन नहीं करना चाहता था सकता है crashlyticsCanUseBackgroundSessions गलत पर। अब, crashlyticsCanUseBackgroundSessions हमेशा सच को तैयार है।

बदलाव के कारण

हम अब 7.0 से नीचे के iOS संस्करणों या OS X 10.9 के नीचे macOS संस्करणों का समर्थन नहीं करते हैं, जो पृष्ठभूमि सत्रों का समर्थन नहीं करते हैं।


Crashlytics केवल Google Analytics द्वारा एकत्र किए गए डेटा का उपयोग कर सकता है।

Firebase Crashlytics SDK में अपग्रेड करने के बाद अब आप फ़ैब्रिक उत्तर के साथ डेटा एकत्र नहीं कर सकते हैं। क्रैश-मुक्त उपयोगकर्ताओं और ब्रेडक्रंब के लिए मीट्रिक प्राप्त करने के लिए, इसके बजाय Google Analytics का उपयोग करने के लिए स्विच करें। ध्यान दें कि आपका ऐतिहासिक उत्तर डेटा Firebase में माइग्रेट नहीं हो सकता है।

यात्रा गूगल विश्लेषिकी का उपयोग प्रारंभ अपने अनुप्रयोग के लिए Google विश्लेषण जोड़ने के बारे में जानने के लिए।

बदलाव के कारण

आपके क्रैश डेटा के बारे में अधिक जानकारी प्राप्त करने में आपकी सहायता के लिए अब हम Google Analytics की पेशकश करते हैं। Analytics के साथ, आप Firebase कंसोल में अपने ऐप्लिकेशन के आंकड़े एकत्र करना जारी रख सकते हैं।

अगला कदम