फायरबेस क्रैशलिटिक्स के साथ आरंभ करें

यह क्विकस्टार्ट वर्णन करता है कि फायरबेस क्रैशलिटिक्स एसडीके के साथ अपने ऐप में फायरबेस क्रैशलिटिक्स कैसे सेट करें ताकि आप फायरबेस कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।

क्रैशलिटिक्स को सेट करने के लिए फायरबेस कंसोल और आपके आईडीई दोनों में कार्यों की आवश्यकता होती है (जैसे फायरबेस कॉन्फ़िगरेशन फ़ाइल और क्रैशलिटिक्स एसडीके जोड़ना)। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट फ़ायरबेस पर भेजने के लिए एक परीक्षण क्रैश को बाध्य करना होगा।

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

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

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

    • यदि आपके मौजूदा फायरबेस प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप अपने एकीकरण टैब से Google Analytics सक्षम कर सकते हैं > फायरबेस कंसोल में प्रोजेक्ट सेटिंग्स

    • यदि आप एक नया फायरबेस प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण वर्कफ़्लो के दौरान Google Analytics सक्षम करें।

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

चरण 1 : अपने ऐप में Crashlytics SDK जोड़ें

फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।

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

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

  1. अपने App स्ट्रक्चर या UIApplicationDelegate में फ़ायरबेस मॉड्यूल आयात करें:

    तीव्र

    import Firebase

    उद्देश्य सी

    @import Firebase;
  2. एक FirebaseApp साझा इंस्टेंस को कॉन्फ़िगर करें, आमतौर पर अपने ऐप प्रतिनिधि के application(_:didFinishLaunchingWithOptions:) विधि में:

    तीव्र

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

    उद्देश्य सी

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

चरण 2 : dSYM फ़ाइलों को स्वचालित रूप से अपलोड करने के लिए Xcode सेट करें

मानव पठनीय क्रैश रिपोर्ट उत्पन्न करने के लिए, क्रैशलिटिक्स को आपके प्रोजेक्ट की डिबग सिंबल (dSYM) फ़ाइलों की आवश्यकता होती है। निम्नलिखित चरण वर्णन करते हैं कि अपने dSYM को स्वचालित रूप से तैयार करने, उन्हें संसाधित करने और जब भी आप अपना ऐप बनाते हैं तो फ़ाइलें अपलोड करने के लिए Xcode को कैसे कॉन्फ़िगर करें।

  1. अपने प्रोजेक्ट का Xcode कार्यक्षेत्र खोलें, फिर बाएं नेविगेटर में इसकी प्रोजेक्ट फ़ाइल चुनें।

  2. लक्ष्य सूची से, अपना मुख्य निर्माण लक्ष्य चुनें।

  3. बिल्ड सेटिंग्स टैब पर क्लिक करें, फिर निम्नलिखित चरणों को पूरा करें ताकि Xcode आपके बिल्ड के लिए dSYMs तैयार कर सके।

    1. सभी पर क्लिक करें, फिर debug information format खोजें।

    2. अपने सभी बिल्ड प्रकारों के लिए dSYM फ़ाइल के साथ डीबग सूचना प्रारूप को DWARF with dSYM File पर सेट करें।

  4. बिल्ड चरण टैब पर क्लिक करें, फिर निम्नलिखित चरणों को पूरा करें ताकि Xcode आपके dSYM को संसाधित कर सके और फ़ाइलें अपलोड कर सके।

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

      सुनिश्चित करें कि यह नया रन स्क्रिप्ट चरण आपके प्रोजेक्ट का अंतिम निर्माण चरण है; अन्यथा, क्रैशलाइटिक्स dSYMs को ठीक से संसाधित नहीं कर सकता है।

    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)

डीएसवाईएम फाइलों और क्रैशलिटिक्स (मैन्युअल रूप से डीएसवाईएम फाइलों को अपलोड करने के तरीके सहित) के बारे में अधिक विस्तृत जानकारी के लिए, डीओबफुसेटेड क्रैश रिपोर्ट प्राप्त करें पर जाएं।

चरण 3 : सेटअप समाप्त करने के लिए एक परीक्षण क्रैश को बाध्य करें

Crashlytics की स्थापना पूरी करने और Firebase कंसोल के Crashlytics डैशबोर्ड में प्रारंभिक डेटा देखने के लिए, आपको एक परीक्षण क्रैश को बाध्य करने की आवश्यकता है।

  1. अपने ऐप में कोड जोड़ें जिसका उपयोग आप परीक्षण क्रैश को बाध्य करने के लिए कर सकते हैं।

    आप अपने ऐप में एक बटन जोड़ने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं, जिसे दबाने पर क्रैश हो जाता है। बटन को "टेस्ट क्रैश" लेबल दिया गया है।

    स्विफ्टयूआई

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    यूआईकिट

    तीव्र

    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]
      }
    }
    

    उद्देश्य सी

    #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. अपने ऐप के चलने तक प्रतीक्षा करें, फिर अपने ऐप के शुरुआती इंस्टेंस को बंद करने के लिए रनिंग स्कीम या एक्शन पर क्लिक करें। इस प्रारंभिक उदाहरण में डिबगर शामिल है जो क्रैशलाईटिक्स में हस्तक्षेप करता है।

  3. अपने ऐप की पहली क्रैश रिपोर्ट भेजने के लिए परीक्षण क्रैश को बाध्य करें:

    1. अपने परीक्षण उपकरण या सिम्युलेटर की होम स्क्रीन से अपना ऐप खोलें।

    2. अपने ऐप में, "टेस्ट क्रैश" बटन दबाएं जिसे आपने उपरोक्त कोड का उपयोग करके जोड़ा है।

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

  4. अपना परीक्षण क्रैश देखने के लिए फायरबेस कंसोल के क्रैशलाइटिक्स डैशबोर्ड पर जाएं।

    यदि आपने कंसोल को रीफ्रेश किया है और आपको पांच मिनट के बाद भी परीक्षण क्रैश नहीं दिख रहा है, तो यह देखने के लिए डीबग लॉगिंग सक्षम करें कि आपका ऐप क्रैश रिपोर्ट भेज रहा है या नहीं।


और बस! क्रैशलाईटिक्स अब आपके ऐप के क्रैश होने की निगरानी कर रहा है। अपनी सभी रिपोर्ट और आँकड़े देखने और जाँचने के लिए क्रैशलाइटिक्स डैशबोर्ड पर जाएँ।

अगले कदम

,

यह क्विकस्टार्ट वर्णन करता है कि फायरबेस क्रैशलिटिक्स एसडीके के साथ अपने ऐप में फायरबेस क्रैशलिटिक्स कैसे सेट करें ताकि आप फायरबेस कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।

क्रैशलिटिक्स को सेट करने के लिए फायरबेस कंसोल और आपके आईडीई दोनों में कार्यों की आवश्यकता होती है (जैसे फायरबेस कॉन्फ़िगरेशन फ़ाइल और क्रैशलिटिक्स एसडीके जोड़ना)। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट फ़ायरबेस पर भेजने के लिए एक परीक्षण क्रैश को बाध्य करना होगा।

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

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

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

    • यदि आपके मौजूदा फायरबेस प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप अपने एकीकरण टैब से Google Analytics सक्षम कर सकते हैं > फायरबेस कंसोल में प्रोजेक्ट सेटिंग्स

    • यदि आप एक नया फायरबेस प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण वर्कफ़्लो के दौरान Google Analytics सक्षम करें।

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

चरण 1 : अपने ऐप में Crashlytics SDK जोड़ें

फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।

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

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

  1. अपने App स्ट्रक्चर या UIApplicationDelegate में फायरबेस मॉड्यूल आयात करें:

    तीव्र

    import Firebase

    उद्देश्य सी

    @import Firebase;
  2. एक FirebaseApp साझा उदाहरण कॉन्फ़िगर करें, आमतौर पर आपके ऐप डेलिगेट के application(_:didFinishLaunchingWithOptions:) विधि:

    तीव्र

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

    उद्देश्य सी

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

चरण 2 : DSYM फ़ाइलों को स्वचालित रूप से अपलोड करने के लिए Xcode सेट करें

मानव पठनीय क्रैश रिपोर्ट उत्पन्न करने के लिए, क्रैशलिटिक्स को आपके प्रोजेक्ट की डिबग सिंबल (dSYM) फ़ाइलों की आवश्यकता होती है। निम्नलिखित चरण वर्णन करते हैं कि अपने dSYM को स्वचालित रूप से तैयार करने, उन्हें संसाधित करने और जब भी आप अपना ऐप बनाते हैं तो फ़ाइलें अपलोड करने के लिए Xcode को कैसे कॉन्फ़िगर करें।

  1. अपने प्रोजेक्ट का Xcode कार्यक्षेत्र खोलें, फिर बाएं नेविगेटर में इसकी प्रोजेक्ट फ़ाइल चुनें।

  2. लक्ष्य सूची से, अपना मुख्य निर्माण लक्ष्य चुनें।

  3. बिल्ड सेटिंग्स टैब पर क्लिक करें, फिर निम्नलिखित चरणों को पूरा करें ताकि Xcode आपके बिल्ड के लिए dSYMs तैयार कर सके।

    1. सभी पर क्लिक करें, फिर debug information format खोजें।

    2. अपने सभी बिल्ड प्रकारों के लिए dSYM फ़ाइल के साथ डीबग सूचना प्रारूप को DWARF with dSYM File पर सेट करें।

  4. बिल्ड चरण टैब पर क्लिक करें, फिर निम्नलिखित चरणों को पूरा करें ताकि Xcode आपके dSYM को संसाधित कर सके और फ़ाइलें अपलोड कर सके।

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

      सुनिश्चित करें कि यह नया रन स्क्रिप्ट चरण आपके प्रोजेक्ट का अंतिम निर्माण चरण है; अन्यथा, क्रैशलाइटिक्स dSYMs को ठीक से संसाधित नहीं कर सकता है।

    2. नए रन स्क्रिप्ट अनुभाग का विस्तार करें।

    3. स्क्रिप्ट फ़ील्ड में ( शेल लेबल के तहत स्थित), निम्न रन स्क्रिप्ट जोड़ें।

      यह स्क्रिप्ट आपकी प्रोजेक्ट की DSYM फ़ाइलों को संसाधित करती है और फ़ाइलों को क्रैशलीटिक्स पर अपलोड करती है।

      "${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 फ़ाइलों और क्रैशलीटिक्स के बारे में अधिक विस्तृत जानकारी के लिए (DSYM फ़ाइलों को मैन्युअल रूप से अपलोड करने के तरीके सहित), DeObfuscated क्रैश रिपोर्ट प्राप्त करें

चरण 3 : सेटअप खत्म करने के लिए एक परीक्षण दुर्घटना को मजबूर करें

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

  1. अपने ऐप में कोड जोड़ें जिसका उपयोग आप एक परीक्षण दुर्घटना को मजबूर करने के लिए कर सकते हैं।

    आप अपने ऐप में एक बटन जोड़ने के लिए निम्न कोड का उपयोग कर सकते हैं, जो दबाए जाने पर एक दुर्घटना का कारण बनता है। बटन को "टेस्ट क्रैश" लेबल किया गया है।

    स्विफ्टयूआई

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    यूआईकिट

    तीव्र

    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]
      }
    }
    

    उद्देश्य सी

    #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 Debugger के साथ Xcode में अपने ऐप का निर्माण और चलाएं।

    1. Build पर क्लिक करें और फिर एक परीक्षण डिवाइस या सिम्युलेटर पर अपना ऐप बनाने के लिए वर्तमान योजना को चलाएं

    2. जब तक आपका ऐप नहीं चल रहा है, तब तक प्रतीक्षा करें, फिर अपने ऐप के प्रारंभिक उदाहरण को बंद करने के लिए योजना या कार्रवाई को चलाने से रोकें । इस प्रारंभिक उदाहरण में डिबगर शामिल था जो क्रैशलीटिक्स के साथ हस्तक्षेप करता है।

  3. अपने ऐप की पहली दुर्घटना रिपोर्ट भेजने के लिए परीक्षण दुर्घटना को मजबूर करें:

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

    2. अपने ऐप में, "टेस्ट क्रैश" बटन दबाएं जिसे आपने ऊपर दिए गए कोड का उपयोग करके जोड़ा।

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

  4. अपने परीक्षण दुर्घटना को देखने के लिए फायरबेस कंसोल के क्रैशलीटिक्स डैशबोर्ड पर जाएं।

    यदि आपने कंसोल को ताज़ा किया है और आप अभी भी पांच मिनट के बाद परीक्षण दुर्घटना नहीं देख रहे हैं, तो डिबग लॉगिंग को यह देखने के लिए सक्षम करें कि क्या आपका ऐप क्रैश रिपोर्ट भेज रहा है।


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

अगले कदम