Catch up on highlights from Firebase at Google I/O 2023. Learn more

Firebase Crashlytics . के साथ आरंभ करें

यह क्विकस्टार्ट आपके ऐप में Firebase Crashlytics SDK के साथ Firebase Crashlytics को सेट करने का तरीका बताता है ताकि आप Firebase कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।

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

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

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

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

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

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

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

ध्यान दें कि जब आपने अपने यूनिटी प्रोजेक्ट को अपने फायरबेस प्रोजेक्ट के साथ पंजीकृत किया था, तो हो सकता है कि आपने पहले ही फायरबेस यूनिटी एसडीके डाउनलोड कर लिया हो और क्रैशलिटिक्स पैकेज जोड़ लिया हो।

  1. Firebase Unity SDK डाउनलोड करें, फिर SDK को किसी सुविधाजनक स्थान पर अनज़िप करें।

    फायरबेस यूनिटी एसडीके प्लेटफॉर्म-विशिष्ट नहीं है।

  2. अपनी खुली एकता परियोजना में, संपत्ति > आयात पैकेज > कस्टम पैकेज पर नेविगेट करें।

  3. अनज़िप किए गए SDK से, Crashlytics SDK ( FirebaseCrashlytics.unitypackage ) आयात करने के लिए चुनें।

    आप कोई अन्य समर्थित Firebase उत्पाद भी आयात कर सकते हैं।

  4. आयात एकता पैकेज विंडो में, आयात पर क्लिक करें।

चरण 2 : Crashlytics प्रारंभ करें

  1. एक नई सी # स्क्रिप्ट बनाएं, फिर इसे दृश्य में GameObject में जोड़ें।

    1. अपना पहला दृश्य खोलें, फिर CrashlyticsInitializer नाम का एक खाली GameObject बनाएं।

    2. नई वस्तु के लिए इंस्पेक्टर में घटक जोड़ें पर क्लिक करें।

    3. CrashlyticsInitializer ऑब्जेक्ट में इसे जोड़ने के लिए अपनी CrashlyticsInit स्क्रिप्ट चुनें।

  2. स्क्रिप्ट के Start मेथड में Crashlytics को इनिशियलाइज़ करें:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase and Crashlytics
    using Firebase;
    using Firebase.Crashlytics;
    
    public class CrashlyticsInit : MonoBehaviour {
        // Use this for initialization
        void Start () {
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // When this property is set to true, Crashlytics will report all
                    // uncaught exceptions as fatal events. This is the recommended behavior.
                    Crashlytics.ReportUncaughtExceptionsAsFatal = true;
    
                    // Set a flag here for indicating that your project is ready to use Firebase.
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
        }
    
      // Update is called once per frame
      void Update()
        // ...
    }

चरण 3 : (केवल Android) प्रतीक अपलोड करने के लिए तैयार हो जाएं

यह चरण केवल IL2CPP का उपयोग करने वाले Android ऐप्स के लिए आवश्यक है।

  • यूनिटी के मोनो स्क्रिप्टिंग बैकएंड का उपयोग करने वाले Android ऐप्स के लिए, इन चरणों की आवश्यकता नहीं है।

  • Apple प्लेटफ़ॉर्म ऐप्स के लिए, इन चरणों की आवश्यकता नहीं है क्योंकि Firebase Unity Editor प्लगइन प्रतीकों को अपलोड करने के लिए स्वचालित रूप से आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करता है।

Crashlytics की Unity SDK 8.6.1+ में स्वचालित रूप से NDK क्रैश रिपोर्टिंग शामिल है, जो Crashlytics को Android पर Unity IL2CPP क्रैश की स्वचालित रूप से रिपोर्ट करने की अनुमति देता है। हालांकि, Crashlytics डैशबोर्ड में नेटिव लाइब्रेरी क्रैश के सांकेतिक स्टैक ट्रेस देखने के लिए, आपको Firebase CLI का उपयोग करके बिल्ड समय पर प्रतीक जानकारी अपलोड करनी होगी।

प्रतीक अपलोड करने के लिए सेट अप करने के लिए, Firebase CLI को स्थापित करने के लिए निर्देशों का पालन करें।

यदि आपने पहले ही CLI स्थापित कर लिया है, तो सुनिश्चित करें कि आप इसके नवीनतम संस्करण में अपडेट कर लें

चरण 4 : अपना प्रोजेक्ट बनाएं और प्रतीक अपलोड करें

आईओएस + (एप्पल प्लेटफॉर्म)

  1. बिल्ड सेटिंग संवाद से, अपने प्रोजेक्ट को Xcode कार्यक्षेत्र में निर्यात करें।

  2. अपना ऐप बनाएं।

    Apple प्लेटफ़ॉर्म के लिए, Firebase Unity Editor प्लगइन स्वचालित रूप से प्रत्येक बिल्ड के लिए Firebase सर्वर पर Crashlytics-संगत प्रतीक फ़ाइल बनाने और अपलोड करने के लिए आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करता है।

एंड्रॉयड

  1. बिल्ड सेटिंग्स संवाद से, निम्न में से कोई एक कार्य करें:

    • अपना प्रोजेक्ट बनाने के लिए Android स्टूडियो प्रोजेक्ट में निर्यात करें; या

    • एकता संपादक से सीधे अपना एपीके बनाएं।
      निर्माण करने से पहले, सुनिश्चित करें कि बिल्ड सेटिंग्स डायलॉग में क्रिएट सिंबल्स.ज़िप के लिए चेकबॉक्स चेक किया गया है।

  2. एक बार जब आपका निर्माण समाप्त हो जाता है, तो Crashlytics-संगत प्रतीक फ़ाइल उत्पन्न करें और निम्न Firebase CLI आदेश चलाकर इसे Firebase सर्वर पर अपलोड करें:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : आपका Firebase Android ऐप आईडी (आपके पैकेज का नाम नहीं)
      उदाहरण Firebase Android ऐप आईडी: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : CLI द्वारा उत्पन्न प्रतीक फ़ाइल का पथ

      • एक Android स्टूडियो प्रोजेक्ट में निर्यात किया गया - PATH/TO/SYMBOLS unityLibrary/symbols डायरेक्टरी है, जो आपके द्वारा ग्रैडल या एंड्रॉइड स्टूडियो के माध्यम से ऐप बनाने के बाद एक्सपोर्टेड प्रोजेक्ट रूट में बनाई जाती है।

      • एकता के भीतर से सीधे APK का निर्माण किया - PATH/TO/SYMBOLS आपके निर्माण के समाप्त होने पर प्रोजेक्ट रूट डायरेक्टरी में उत्पन्न ज़िपित प्रतीक फ़ाइल का पथ है (उदाहरण के लिए: myproject/myapp-1.0-v100.symbols.zip )।

    प्रतीक फ़ाइल बनाने और अपलोड करने के लिए Firebase CLI कमांड का उपयोग करने के लिए उन्नत विकल्प देखें

    झंडा विवरण
    --generator=csym

    डिफ़ॉल्ट ब्रेकपैड जनरेटर के बजाय पुराने cSYM प्रतीक फ़ाइल जनरेटर का उपयोग करता है

    उपयोग के लिए अनुशंसित नहीं। हम डिफ़ॉल्ट ब्रेकपैड प्रतीक फ़ाइल जनरेटर का उपयोग करने की सलाह देते हैं।

    --generator=breakpad

    ब्रेकपैड प्रतीक फ़ाइल जनरेटर का उपयोग करता है

    ध्यान दें कि प्रतीक फ़ाइल निर्माण के लिए डिफ़ॉल्ट ब्रेकपैड है। इस ध्वज का उपयोग केवल तभी करें जब आपने अपने बिल्ड कॉन्फ़िगरेशन में symbolGenerator { csym() } जोड़ा हो और आप इसके बजाय ब्रेकपैड का उपयोग करने के लिए इसे ओवरराइड करना चाहते हों।

    --dry-run

    प्रतीक फ़ाइलें बनाता है लेकिन उन्हें अपलोड नहीं करता

    यदि आप भेजी गई फ़ाइलों की सामग्री का निरीक्षण करना चाहते हैं तो यह फ़्लैग उपयोगी है।

    --debug अतिरिक्त डिबगिंग जानकारी प्रदान करता है

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

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

  1. एक मौजूदा GameObject खोजें, फिर उसमें निम्न स्क्रिप्ट जोड़ें। आपके ऐप चलाने के कुछ सेकंड बाद यह स्क्रिप्ट एक परीक्षण क्रैश का कारण बनेगी।

    using System;
    using UnityEngine;
    
    public class CrashlyticsTester : MonoBehaviour {
    
        int updatesBeforeException;
    
        // Use this for initialization
        void Start () {
          updatesBeforeException = 0;
        }
    
        // Update is called once per frame
        void Update()
        {
            // Call the exception-throwing method here so that it's run
            // every frame update
            throwExceptionEvery60Updates();
        }
    
        // A method that tests your Crashlytics implementation by throwing an
        // exception every 60 frame updates. You should see reports in the
        // Firebase console a few minutes after running your app with this method.
        void throwExceptionEvery60Updates()
        {
            if (updatesBeforeException > 0)
            {
                updatesBeforeException--;
            }
            else
            {
                // Set the counter to 60 updates
                updatesBeforeException = 60;
    
                // Throw an exception to test your Crashlytics implementation
                throw new System.Exception("test exception please ignore");
            }
        }
    }
    
  2. अपना निर्माण पूरा होने के बाद अपना ऐप बनाएं और प्रतीक जानकारी अपलोड करें।

    • iOS+ : Firebase Unity Editor प्लगइन आपकी प्रतीक फ़ाइल अपलोड करने के लिए स्वचालित रूप से आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करता है।

    • Android : IL2CPP का उपयोग करने वाले आपके Android ऐप्स के लिए, अपनी प्रतीक फ़ाइल अपलोड करने के लिए Firebase CLI crashlytics:symbols:upload कमांड चलाएँ।

  3. अपना ऐप चलाएं। एक बार जब आपका ऐप चल रहा हो, तो डिवाइस लॉग देखें और CrashlyticsTester से अपवाद के ट्रिगर होने की प्रतीक्षा करें।

    • iOS+ : Xcode के निचले फलक में लॉग देखें।

    • Android : टर्मिनल में निम्न आदेश चलाकर लॉग देखें: adb logcat

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

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


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

अगले कदम

  • Google Play के साथ एकीकृत करें ताकि आप सीधे Crashlytics डैशबोर्ड में Google Play ट्रैक द्वारा अपने Android ऐप की क्रैश रिपोर्ट को फ़िल्टर कर सकें। यह आपको विशिष्ट बिल्ड पर अपने डैशबोर्ड को बेहतर ढंग से केंद्रित करने की अनुमति देता है।