इस क्विकस्टार्ट में, Firebase Crashlytics SDK की मदद से अपने ऐप्लिकेशन में Firebase Crashlytics को सेट अप करने का तरीका बताया गया है. इससे आपको Firebase Crashlytics कंसोल में क्रैश की पूरी रिपोर्ट मिल सकती हैं.Firebase
Crashlytics को सेट अप करने के लिए, Firebase कंसोल और आपके IDE, दोनों में टास्क पूरे करने होते हैं. जैसे, Firebase कॉन्फ़िगरेशन फ़ाइल और Crashlytics SDK टूल जोड़ना. सेटअप पूरा करने के लिए, आपको टेस्ट क्रैश को फ़ोर्स करना होगा, ताकि Firebase को पहली क्रैश रिपोर्ट भेजी जा सके.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Apple प्रोजेक्ट में Firebase जोड़ें. अगर आपके पास Apple का कोई ऐप्लिकेशन नहीं है, तो सैंपल ऐप्लिकेशन डाउनलोड किया जा सकता है.
सुझाया गया: क्रैश, नॉन-फ़ैटल या एएनआर इवेंट से पहले उपयोगकर्ता की कार्रवाइयों को समझने के लिए, ब्रेडक्रंब लॉग अपने-आप पाने के लिए, आपको अपने Firebase प्रोजेक्ट में Google Analytics चालू करना होगा.
अगर आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics चालू नहीं है, तो Firebase कंसोल में जाकर,
के > प्रोजेक्ट सेटिंगइंटिग्रेशन टैब से Google Analytics को चालू किया जा सकता है. अगर आपको नया Firebase प्रोजेक्ट बनाना है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics को चालू करें.
ध्यान दें कि ब्रेडक्रंब लॉग, Apple के उन सभी प्लैटफ़ॉर्म के लिए उपलब्ध हैं जिन पर Crashlytics काम करता है. हालांकि, watchOS पर यह सुविधा उपलब्ध नहीं है.
पहला चरण: अपने ऐप्लिकेशन में Crashlytics SDK टूल जोड़ना
Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपने ऐप्लिकेशन प्रोजेक्ट को खोलें. इसके बाद, File > Add Packages पर जाएं.
- जब आपसे कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
- Crashlytics लाइब्रेरी चुनें.
- ब्रेडक्रंब लॉग का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल भी जोड़ें. पक्का करें कि आपके Firebase प्रोजेक्ट में Google Analytics चालू हो.
- टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में
-ObjC
फ़्लैग जोड़ें. - (सिर्फ़ macOS के लिए) अपने
Info.plist
में,NSApplicationCrashOnExceptions
कुंजी जोड़ें और इसेYES
पर सेट करें. - इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी से जुड़ी समस्या को हल करना शुरू कर देगा और उन्हें बैकग्राउंड में डाउनलोड करेगा.
https://github.com/firebase/firebase-ios-sdk.git
इसके बाद, Firebase मॉड्यूल को कॉन्फ़िगर करें:
अपने
App
स्ट्रक्चर याUIApplicationDelegate
में Firebase मॉड्यूल इंपोर्ट करें:Swift
import Firebase
Objective-C
@import Firebase;
FirebaseApp
का शेयर किया गया इंस्टेंस कॉन्फ़िगर करें. आम तौर पर, यह आपके ऐप्लिकेशन डेलिगेट केapplication(_:didFinishLaunchingWithOptions:)
तरीके में होता है:Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
दूसरा चरण: dSYM फ़ाइलों को अपने-आप अपलोड करने के लिए Xcode सेट अप करना
क्रैश रिपोर्ट को आसानी से पढ़ने लायक बनाने के लिए, Crashlytics को आपके प्रोजेक्ट की डीबग सिंबल (डीएसवाईएम) फ़ाइलों की ज़रूरत होती है. नीचे दिए गए चरणों में, Xcode को कॉन्फ़िगर करने का तरीका बताया गया है. इससे, आपके ऐप्लिकेशन को बिल्ड करने पर, dSYM अपने-आप जनरेट हो जाएंगे. साथ ही, उन्हें प्रोसेस किया जा सकेगा और फ़ाइलें अपलोड की जा सकेंगी.
अपने प्रोजेक्ट का Xcode वर्कस्पेस खोलें. इसके बाद, बाईं ओर मौजूद नेविगेटर में जाकर, उसकी प्रोजेक्ट फ़ाइल चुनें.
TARGETS सूची में जाकर, अपना मुख्य बिल्ड टारगेट चुनें.
Build Settings टैब पर क्लिक करें. इसके बाद, यह तरीका अपनाएं, ताकि Xcode आपके बिल्ड के लिए dSYM जनरेट कर सके.
सभी पर क्लिक करें. इसके बाद,
debug information format
खोजें.अपने सभी बिल्ड टाइप के लिए, डीबग जानकारी का फ़ॉर्मैट
DWARF with dSYM File
पर सेट करें.
Build Phases टैब पर क्लिक करें. इसके बाद, यह तरीका अपनाएं, ताकि Xcode आपके dSYM को प्रोसेस कर सके और फ़ाइलें अपलोड कर सके.
> New Run Script Phase पर क्लिक करें.
पक्का करें कि यह नया Run Script फ़ेज़, आपके प्रोजेक्ट का आखिरी बिल्ड फ़ेज़ हो. ऐसा न होने पर, Crashlytics dSYM को ठीक से प्रोसेस नहीं कर पाएगा.
नए स्क्रिप्ट चलाएं सेक्शन को बड़ा करें.
स्क्रिप्ट फ़ील्ड (शेल लेबल के नीचे मौजूद) में, यह रन स्क्रिप्ट जोड़ें.
यह स्क्रिप्ट, आपके प्रोजेक्ट की dSYM फ़ाइलों को प्रोसेस करती है और उन्हें Crashlytics पर अपलोड करती है.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
इनपुट फ़ाइलें सेक्शन में जाकर, यहां दी गई फ़ाइलों के पाथ जोड़ें:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
अगर आपके प्रोजेक्ट की बिल्ड सेटिंग में$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YES
औरENABLE_DEBUG_DYLIB=YES
शामिल हैं, तो इन्हें भी शामिल करें:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
डीएसवाईएम फ़ाइलों और Crashlytics के बारे में ज़्यादा जानकारी पाने के लिए, डिकोड की गई क्रैश रिपोर्ट पाना पर जाएं. इसमें डीएसवाईएम फ़ाइलों को मैन्युअल तरीके से अपलोड करने का तरीका भी शामिल है.
तीसरा चरण: सेटअप पूरा करने के लिए, टेस्ट क्रैश को फ़ोर्स करना
Crashlytics को सेट अप करने और Firebase कंसोल के Crashlytics डैशबोर्ड में शुरुआती डेटा देखने के लिए, आपको टेस्ट क्रैश को फ़ोर्स करना होगा.
अपने ऐप्लिकेशन में ऐसा कोड जोड़ें जिसका इस्तेमाल करके, टेस्ट क्रैश को मजबूर किया जा सके.
अपने ऐप्लिकेशन में ऐसा बटन जोड़ने के लिए, यहां दिया गया कोड इस्तेमाल करें जिसे दबाने पर ऐप्लिकेशन बंद हो जाए. बटन को "टेस्ट क्रैश" के तौर पर लेबल किया गया है.
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Xcode में अपना ऐप्लिकेशन बनाएं और उसे चलाएं. इसके लिए, Xcode डीबगर को डिसकनेक्ट करें.
टेस्ट डिवाइस या सिम्युलेटर पर अपना ऐप्लिकेशन बनाने के लिए,
बनाएं और फिर मौजूदा स्कीम चलाएं पर क्लिक करें.ऐप्लिकेशन के चालू होने तक इंतज़ार करें. इसके बाद, ऐप्लिकेशन के शुरुआती इंस्टेंस को बंद करने के लिए, Crashlytics में रुकावट डालता है.
स्कीम या कार्रवाई को बंद करें पर क्लिक करें. इस शुरुआती इंस्टेंस में ऐसा डीबगर शामिल था जो
अपने ऐप्लिकेशन की पहली क्रैश रिपोर्ट भेजने के लिए, टेस्ट क्रैश को फ़ोर्स करें:
अपने टेस्ट डिवाइस या सिम्युलेटर की होम स्क्रीन से ऐप्लिकेशन खोलें.
अपने ऐप्लिकेशन में, "Test Crash" बटन दबाएं. इसे आपने ऊपर दिए गए कोड का इस्तेमाल करके जोड़ा था.
ऐप्लिकेशन क्रैश होने के बाद, उसे Xcode से फिर से चलाएं, ताकि आपका ऐप्लिकेशन Firebase को क्रैश रिपोर्ट भेज सके.
टेस्ट क्रैश देखने के लिए, Firebase कंसोल के Crashlytics डैशबोर्ड पर जाएं.
अगर आपने कंसोल को रीफ़्रेश कर लिया है और पांच मिनट बाद भी आपको टेस्ट क्रैश नहीं दिख रहा है, तो डीबग लॉगिंग चालू करें. इससे आपको यह पता चलेगा कि आपका ऐप्लिकेशन क्रैश रिपोर्ट भेज रहा है या नहीं.
बस इतना ही! Crashlytics अब आपके ऐप्लिकेशन के क्रैश होने की समस्या पर नज़र रख रहा है. अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए, Crashlytics डैशबोर्ड पर जाएं.
अगले चरण
- ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियां, और गंभीर नहीं होने वाली गड़बड़ियों को ट्रैक करने की सुविधा जोड़कर, क्रैश रिपोर्ट सेटअप को अपनी पसंद के मुताबिक बनाएं.