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

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

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

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

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

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

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

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

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

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

  1. फायरबेस यूनिटी एसडीके डाउनलोड करें, फिर एसडीके को किसी सुविधाजनक स्थान पर अनज़िप करें। फायरबेस यूनिटी एसडीके प्लेटफ़ॉर्म-विशिष्ट नहीं है।

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

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

    ब्रेडक्रंब लॉग का लाभ उठाने के लिए अपने ऐप ( FirebaseAnalytics.unitypackage ) में Google Analytics के लिए Firebase SDK भी जोड़ें। सुनिश्चित करें कि आपके फायरबेस प्रोजेक्ट में Google Analytics सक्षम है

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

चरण 2 : क्रैशलिटिक्स प्रारंभ करें

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

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

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

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

  2. स्क्रिप्ट की Start विधि में क्रैशलिटिक्स प्रारंभ करें:

    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 का उपयोग करते हैं।

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

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

क्रैशलाईटिक्स के यूनिटी एसडीके 8.6.1+ में स्वचालित रूप से एनडीके क्रैश रिपोर्टिंग शामिल है, जो क्रैशलाइटिक्स को एंड्रॉइड पर यूनिटी आईएल2सीपीपी क्रैश की स्वचालित रूप से रिपोर्ट करने की अनुमति देता है। हालाँकि, क्रैशलिटिक्स डैशबोर्ड में मूल लाइब्रेरी क्रैश के लिए प्रतीकात्मक स्टैक निशान देखने के लिए, आपको फायरबेस सीएलआई का उपयोग करके बिल्ड समय पर प्रतीक जानकारी अपलोड करनी होगी।

प्रतीक अपलोडिंग के लिए सेटअप करने के लिए, फायरबेस सीएलआई स्थापित करने के निर्देशों का पालन करें।

यदि आपने पहले ही सीएलआई स्थापित कर लिया है, तो उसके नवीनतम संस्करण में अद्यतन करना सुनिश्चित करें।

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

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

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

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

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

एंड्रॉयड

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

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

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

  2. एक बार जब आपका निर्माण पूरा हो जाए, तो एक क्रैशलिटिक्स-संगत प्रतीक फ़ाइल बनाएं और इसे निम्नलिखित फायरबेस सीएलआई कमांड चलाकर फायरबेस सर्वर पर अपलोड करें:

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

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

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

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

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

    झंडा विवरण
    --generator=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+ : फायरबेस यूनिटी एडिटर प्लगइन आपकी प्रतीक फ़ाइल अपलोड करने के लिए आपके Xcode प्रोजेक्ट को स्वचालित रूप से कॉन्फ़िगर करता है।

    • एंड्रॉइड : आपके एंड्रॉइड ऐप्स के लिए जो IL2CPP का उपयोग करते हैं, अपनी प्रतीक फ़ाइल अपलोड करने के लिए फायरबेस सीएलआई crashlytics:symbols:upload कमांड चलाएं।

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

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

    • एंड्रॉइड : टर्मिनल में निम्नलिखित कमांड चलाकर लॉग देखें: adb logcat

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

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


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

अगले कदम

  • (अनुशंसित) IL2CPP का उपयोग करने वाले Android ऐप्स के लिए, GWP-ASan रिपोर्ट एकत्रित करके मूल मेमोरी त्रुटियों के कारण होने वाले क्रैश को डीबग करने में सहायता प्राप्त करें। ये मेमोरी-संबंधित त्रुटियां आपके ऐप के भीतर मेमोरी भ्रष्टाचार से जुड़ी हो सकती हैं, जो ऐप सुरक्षा कमजोरियों का प्रमुख कारण है। इस डिबगिंग सुविधा का लाभ उठाने के लिए, सुनिश्चित करें कि आपका ऐप नवीनतम क्रैशलाइटिक्स एसडीके फॉर यूनिटी (v10.7.0+) का उपयोग करता है और इसमें GWP-ASan स्पष्ट रूप से सक्षम है (आपको अपने एंड्रॉइड ऐप मेनिफेस्ट को संशोधित करने की आवश्यकता है)।
  • Google Play के साथ एकीकृत करें ताकि आप अपने Android ऐप की क्रैश रिपोर्ट को Google Play ट्रैक द्वारा सीधे Crashlytics डैशबोर्ड में फ़िल्टर कर सकें। यह आपको अपने डैशबोर्ड को विशिष्ट बिल्ड पर बेहतर ढंग से केंद्रित करने की अनुमति देता है।