Apple प्लैटफ़ॉर्म के लिए Crashlytics का इस्तेमाल शुरू करना

प्लैटफ़ॉर्म चुनें: iOS+ Android Android NDK Flutter Unity


इस गाइड में, Apple प्लैटफ़ॉर्म पर बने ऐप्लिकेशन (जैसे, iOS ऐप्लिकेशन) में Firebase Crashlytics का इस्तेमाल शुरू करने का तरीका बताया गया है.

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

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

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

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

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

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

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

    ध्यान दें कि ब्रेडक्रंब लॉग, 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. ब्रेडक्रंब लॉग का फ़ायदा लेने के लिए, अपने ऐप्लिकेशन में Firebase के लिए Google Analytics SDK टूल भी जोड़ें. पक्का करें कि Google Analytics चालू हो आपके Firebase प्रोजेक्ट में.
  6. अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में, -ObjC फ़्लैग जोड़ें.
  7. (सिर्फ़ macOS के लिए) अपने Info.plist में, कुंजी NSApplicationCrashOnExceptions जोड़ें और इसे YES पर सेट करें.
  8. इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्या को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.

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

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

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. 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 को आपके प्रोजेक्ट की डीबग सिंबल (dSYM) फ़ाइलों की ज़रूरत होती है. यहां दिए गए तरीके से, Xcode को dSYM अपने-आप जनरेट करने, उन्हें प्रोसेस करने, और जब भी आपका ऐप्लिकेशन बनाया जाता है, तब फ़ाइलें अपलोड करने के लिए कॉन्फ़िगर किया जा सकता है.

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

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

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

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

    2. अपने सभी बिल्ड टाइप के लिए, Debug Information Format को DWARF with dSYM File पर सेट करें.

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

    1. > New Run Script Phase पर क्लिक करें.

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

    2. नए Run Script सेक्शन को बड़ा करें.

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

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

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

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

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

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

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

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

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

    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. टेस्ट डिवाइस या सिम्युलेटर पर अपना ऐप्लिकेशन बनाने के लिए, Build and then run the current scheme पर क्लिक करें.

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

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

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

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

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

  4. Firebase कंसोल में, DevOps और उपयोगकर्ता जुड़ाव > Crashlytics डैशबोर्ड पर जाएं. यहां आपको टेस्ट क्रैश की रिपोर्ट दिखेगी.

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


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

अगले चरण