Firebase Crashlytics का इस्तेमाल शुरू करें


इस शुरुआती लेख में, Firebase Crashlytics SDK टूल की मदद से अपने ऐप्लिकेशन में Firebase Crashlytics को सेट अप करने का तरीका बताया गया है. इससे आपको Firebase कंसोल में क्रैश की पूरी जानकारी वाली रिपोर्ट मिल सकती हैं.

Crashlytics को सेट अप करने के लिए, Firebase कंसोल और IDE, दोनों में टास्क करने की ज़रूरत होती है. जैसे, Firebase कॉन्फ़िगरेशन फ़ाइल और Crashlytics SDK टूल जोड़ना. सेटअप पूरा करने के लिए, आपको Firebase को अपनी पहली क्रैश रिपोर्ट भेजने के लिए, टेस्ट को क्रैश करना होगा.

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

  1. अगर आपने पहले से ऐसा नहीं किया है, तो अपने Apple प्रोजेक्ट में Firebase जोड़ें. अगर आपके पास Apple ऐप्लिकेशन नहीं है, तो सैंपल ऐप्लिकेशन डाउनलोड किया जा सकता है.

  2. सुझाया गया: क्रैश, गैर-घातक या ANR इवेंट की वजह बनने वाली उपयोगकर्ता की कार्रवाइयों को समझने के लिए, अपने-आप ब्रेडक्रंब लॉग पाने के लिए, आपको अपने Firebase प्रोजेक्ट में Google Analytics को चालू करना होगा.

    • अगर आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics चालू नहीं है, तो Firebase कंसोल में > प्रोजेक्ट सेटिंग के इंटिग्रेशन टैब से Google Analytics को चालू किया जा सकता है.

    • अगर आपको नया Firebase प्रोजेक्ट बनाना है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics को चालू करें.

    ध्यान दें कि ब्रेडक्रंब लॉग, Crashlytics के साथ काम करने वाले सभी Apple प्लैटफ़ॉर्म के लिए उपलब्ध हैं. हालांकि, ये watchOS के लिए उपलब्ध नहीं हैं.

पहला चरण: अपने ऐप्लिकेशन में Crashlytics SDK टूल जोड़ना

Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलकर, फ़ाइल > पैकेज जोड़ें पर जाएं.
  2. जब कहा जाए, तब Firebase के Apple प्लैटफ़ॉर्म के SDK टूल का रिपॉज़िटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Crashlytics लाइब्रेरी चुनें.
  5. ब्रेडक्रंब लॉग का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल भी जोड़ें. पक्का करें कि आपके Firebase प्रोजेक्ट में Google Analytics चालू हो.
  6. अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में -ObjC फ़्लैग जोड़ें.
  7. (सिर्फ़ macOS के लिए) अपने Info.plist में, कुंजी NSApplicationCrashOnExceptions जोड़ें और उसे YES पर सेट करें.
  8. प्रोसेस पूरी होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप हल और डाउनलोड करना शुरू कर देगा.

इसके बाद, Firebase मॉड्यूल को कॉन्फ़िगर करें:

  1. अपने App स्ट्रक्चर या UIApplicationDelegate में Firebase मॉड्यूल इंपोर्ट करें:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. आम तौर पर, अपने ऐप्लिकेशन डेलीगेट के application(_:didFinishLaunchingWithOptions:) तरीके में, FirebaseApp का शेयर किया गया इंस्टेंस कॉन्फ़िगर करें:

    Swift

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()

    Objective-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];

दूसरा चरण: dSYM फ़ाइलों को अपने-आप अपलोड करने के लिए Xcode सेट अप करना

क्रैश की ऐसी रिपोर्ट जनरेट करने के लिए जिन्हें कोई भी पढ़ सके, Crashlytics को आपके प्रोजेक्ट की डिबग सिंबल (dSYM) फ़ाइलों की ज़रूरत होती है. यहां Xcode को कॉन्फ़िगर करने का तरीका बताया गया है, ताकि आपके ऐप्लिकेशन को बिल्ड करने पर, dSYM अपने-आप जनरेट हो जाएं, उन्हें प्रोसेस किया जा सके, और फ़ाइलें अपलोड की जा सकें.

  1. अपने प्रोजेक्ट का Xcode वर्कस्पेस खोलें. इसके बाद, बाईं ओर मौजूद नेविगेटर में प्रोजेक्ट फ़ाइल चुनें.

  2. TARGETS सूची से, अपना मुख्य बिल्ड टारगेट चुनें.

  3. बिल्ड सेटिंग टैब पर क्लिक करें. इसके बाद, यह तरीका अपनाएं, ताकि Xcode आपके बिल्ड के लिए dSYMs जनरेट कर सके.

    1. सभी पर क्लिक करें. इसके बाद, debug information format खोजें.

    2. सभी तरह के बिल्ड के लिए, डीबग की जानकारी का फ़ॉर्मैट को DWARF with dSYM File पर सेट करें.

  4. बिल्ड फ़ेज़ टैब पर क्लिक करें. इसके बाद, यह तरीका अपनाएं, ताकि Xcode आपके dSYMs को प्रोसेस कर सके और फ़ाइलों को अपलोड कर सके.

    1. > नई स्क्रिप्ट चलाने का चरण पर क्लिक करें.

      पक्का करें कि स्क्रिप्ट चलाएं का यह नया चरण, आपके प्रोजेक्ट का आखिरी बिल्ड चरण हो. ऐसा न होने पर, Crashlytics dSYM को सही तरीके से प्रोसेस नहीं कर पाएगा.

    2. नए स्क्रिप्ट चलाएं सेक्शन को बड़ा करें.

    3. स्क्रिप्ट फ़ील्ड (शेल लेबल के नीचे मौजूद) में, यहां दी गई रन स्क्रिप्ट जोड़ें.

      यह स्क्रिप्ट आपके प्रोजेक्ट की dSYM फ़ाइलों को प्रोसेस करती है और फ़ाइलों को Crashlytics पर अपलोड करती है.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. इनपुट फ़ाइलें सेक्शन में, इन फ़ाइलों की जगहों के पाथ जोड़ें:

      ${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)

dSYM फ़ाइलों और Crashlytics के बारे में ज़्यादा जानकारी के लिए (इसमें dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड करने का तरीका भी शामिल है), डिकोड की गई क्रैश रिपोर्ट पाएं पर जाएं.

तीसरा चरण: सेटअप पूरा करने के लिए, टेस्ट को क्रैश करना

Crashlytics को सेट अप करने के बाद, Firebase कंसोल के Crashlytics डैशबोर्ड में शुरुआती डेटा देखने के लिए, आपको टेस्ट को क्रैश करना होगा.

  1. अपने ऐप्लिकेशन में ऐसा कोड जोड़ें जिसका इस्तेमाल, टेस्ट क्रैश करने के लिए किया जा सके.

    अपने ऐप्लिकेशन में ऐसा बटन जोड़ने के लिए, नीचे दिए गए कोड का इस्तेमाल किया जा सकता है जिसे दबाने पर ऐप्लिकेशन क्रैश हो जाता है. बटन पर "क्रैश की जांच करें" लेबल है.

    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
  2. Xcode में अपने ऐप्लिकेशन को बनाएं और चलाएं. इसके लिए, Xcode डीबगर को डिसकनेक्ट करें.

    1. टेस्ट डिवाइस या सिम्युलेटर पर अपना ऐप्लिकेशन बनाने के लिए, मौजूदा स्कीम बनाएं और फिर उसे चलाएं पर क्लिक करें.

    2. जब तक आपका ऐप्लिकेशन चल रहा है, तब तक इंतज़ार करें. इसके बाद, अपने ऐप्लिकेशन के शुरुआती इंस्टेंस को बंद करने के लिए, स्कीम या ऐक्शन को चलाना बंद करें पर क्लिक करें. इस शुरुआती इंस्टेंस में डीबगर शामिल था, जो Crashlytics में रुकावट डालता है.

  3. अपने ऐप्लिकेशन की पहली क्रैश रिपोर्ट भेजने के लिए, टेस्ट को क्रैश करने के लिए मजबूर करें:

    1. टेस्ट डिवाइस या सिम्युलेटर की होम स्क्रीन से अपना ऐप्लिकेशन खोलें.

    2. अपने ऐप्लिकेशन में, ऊपर दिए गए कोड का इस्तेमाल करके जोड़ा गया "क्रैश की जांच करें" बटन दबाएं.

    3. ऐप्लिकेशन क्रैश होने के बाद, उसे Xcode से फिर से चलाएं, ताकि आपका ऐप्लिकेशन Firebase को क्रैश रिपोर्ट भेज सके.

  4. टेस्ट क्रैश देखने के लिए, Firebase कंसोल के Crashlytics डैशबोर्ड पर जाएं.

    अगर आपने कंसोल को रीफ़्रेश किया है और पांच मिनट बाद भी आपको जांच के क्रैश होने की जानकारी नहीं दिख रही है, तो डीबग लॉगिंग की सुविधा चालू करें. इससे आपको यह पता चलेगा कि आपका ऐप्लिकेशन क्रैश रिपोर्ट भेज रहा है या नहीं.


बस इतना ही! Crashlytics अब आपके ऐप्लिकेशन के क्रैश होने पर नज़र रख रहा है. अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए, Crashlytics डैशबोर्ड पर जाएं.

अगले चरण