Unity के लिए Crashlytics का इस्तेमाल शुरू करना

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


इस गाइड में, Firebase Crashlytics का इस्तेमाल शुरू करने का तरीका बताया गया है आपके Unity प्रोजेक्ट में.

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

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

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

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

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

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

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

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

ध्यान दें कि अपने Unity प्रोजेक्ट को Firebase प्रोजेक्ट के साथ रजिस्टर करते समय, हो सकता है कि आपने पहले ही Firebase Unity SDK डाउनलोड कर लिया हो और अगले चरणों में बताए गए पैकेज जोड़ लिए हों.

  1. Firebase Unity SDK डाउनलोड करें. इसके बाद, SDK को किसी ऐसी जगह पर अनज़िप करें जहां से उसे आसानी से ऐक्सेस किया जा सके. Firebase Unity SDK, प्लैटफ़ॉर्म के हिसाब से अलग-अलग नहीं होता.

  2. अपने खुले हुए Unity प्रोजेक्ट में, ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज पर जाएं.

  3. अनज़िप किए गए SDK से, Crashlytics SDK (FirebaseCrashlytics.unitypackage) को इंपोर्ट करने के लिए चुनें.

    ब्रेडक्रंब लॉग का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल (FirebaseAnalytics.unitypackage) भी जोड़ें. पक्का करें कि Google Analytics चालू हो आपके Firebase प्रोजेक्ट में.

  4. Unity पैकेज इंपोर्ट करें विंडो में, इंपोर्ट करें पर क्लिक करें.

दूसरा चरण: Crashlytics को शुरू करना

  1. एक नई C# स्क्रिप्ट बनाएं. इसके बाद, इसे सीन में मौजूद GameObject में जोड़ें.

    1. अपना पहला सीन खोलें. इसके बाद, CrashlyticsInitializer नाम का एक खाली GameObject बनाएं.

    2. नए ऑब्जेक्ट के लिए, इंस्पेक्टर में कॉम्पोनेंट जोड़ें पर क्लिक करें.

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

  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()
        // ...
    }

तीसरा चरण: (सिर्फ़ Android के लिए) सिंबल अपलोड करने के लिए सेटअप करना

यह चरण सिर्फ़ उन Android ऐप्लिकेशन के लिए ज़रूरी है जो IL2CPP का इस्तेमाल करते हैं.

  • Unity के Mono स्क्रिप्टिंग बैकएंड का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, इन चरणों को पूरा करने की ज़रूरत नहीं है.

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

Unity के लिए Crashlytics SDK टूल (v8.6.1+) में, NDK क्रैश रिपोर्टिंग की सुविधा अपने-आप शामिल होती है. इससे, Crashlytics Android पर Unity IL2CPP क्रैश की रिपोर्ट अपने-आप कर सकता है. हालांकि, डैशबोर्ड में, नेटिव लाइब्रेरी क्रैश के लिए सिंबल वाली स्टैक ट्रेस देखने के लिए, आपको CLI का इस्तेमाल करके, बिल्ड के समय सिंबल की जानकारी अपलोड करनी होगी.CrashlyticsFirebase

सिंबल अपलोड करने के लिए सेटअप करने के लिए, CLI इंस्टॉल करने के निर्देशों का पालन करें.Firebase

अगर आपने पहले ही CLI इंस्टॉल कर लिया है, तो पक्का करें कि आपने इसे सबसे नए वर्शन में अपडेट किया हो.

चौथा चरण: अपना प्रोजेक्ट बनाना और सिंबल अपलोड करना

iOS+ (Apple प्लैटफ़ॉर्म)

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

  2. अपना ऐप्लिकेशन बनाएं.

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

Android

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

    • अपने प्रोजेक्ट को बनाने के लिए, उसे Android Studio प्रोजेक्ट में एक्सपोर्ट करें या

    • अपने APK को सीधे Unity एडिटर से बनाएं.
      बिल्ड करने से पहले, पक्का करें कि बिल्ड सेटिंग डायलॉग में, symbols.zip बनाएं चेकबॉक्स चुना गया हो.

  2. आपका बिल्ड पूरा होने के बाद, Crashlytics के साथ काम करने वाली सिंबल फ़ाइल जनरेट करें और उसे Firebase सर्वर पर अपलोड करें. इसके लिए, यह Firebase CLI कमांड चलाएं:

    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 Studio प्रोजेक्ट में एक्सपोर्ट किया गया — PATH/TO/SYMBOLS डायरेक्ट्री होती है,unityLibrary/symbols जो Gradle या Android Studio के ज़रिए ऐप्लिकेशन बनाने के बाद, एक्सपोर्ट किए गए प्रोजेक्ट की रूट डायरेक्ट्री में बनती है.

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

    सिंबल फ़ाइल जनरेट करने और अपलोड करने के लिए, Firebase CLI कमांड का इस्तेमाल करने के ऐडवांस विकल्प देखना

    फ़्लैग ब्यौरा
    --generator=csym

    डिफ़ॉल्ट Breakpad जनरेटर के बजाय, पुराने cSYM सिंबल फ़ाइल जनरेटर का इस्तेमाल करता है

    इसका इस्तेमाल करने का सुझाव नहीं दिया जाता. हमारा सुझाव है कि डिफ़ॉल्ट Breakpad सिंबल फ़ाइल जनरेटर का इस्तेमाल करें.

    --generator=breakpad

    Breakpad सिंबल फ़ाइल जनरेटर का इस्तेमाल करता है

    ध्यान दें कि सिंबल फ़ाइल जनरेट करने के लिए डिफ़ॉल्ट जनरेटर, Breakpad है. इस फ़्लैग का इस्तेमाल सिर्फ़ तब करें, जब आपने अपने बिल्ड कॉन्फ़िगरेशन में symbolGenerator { csym() } जोड़ा हो और आपको इसे बदलकर Breakpad का इस्तेमाल करना हो.

    --dry-run

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

    यह फ़्लैग तब काम आता है, जब आपको भेजी गई फ़ाइलों का कॉन्टेंट देखना हो.

    --debug डीबग करने के बारे में ज़्यादा जानकारी देता है

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

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 यूनिटी एडिटर प्लगिन, आपकी सिंबल फ़ाइल अपलोड करने के लिए, आपके Xcode प्रोजेक्ट को अपने-आप कॉन्फ़िगर कर देता है.

    • Android: IL2CPP का इस्तेमाल करने वाले अपने Android ऐप्लिकेशन के लिए, Firebase CLI crashlytics:symbols:upload कमांड चलाकर, अपनी सिंबल फ़ाइल अपलोड करें.

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

    • iOS+: Xcode के सबसे नीचे वाले पैन में लॉग देखें.

    • Android: टर्मिनल में यह कमांड चलाकर लॉग देखें: adb logcat.

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

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


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

अगले चरण