यह क्विकस्टार्ट वर्णन करता है कि Firebase Crashlytics SDK के साथ अपने ऐप में Firebase Crashlytics कैसे सेट करें, ताकि आप Firebase कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।
Crashlytics को सेट करने के लिए Firebase कंसोल और आपके IDE (जैसे Firebase कॉन्फ़िगरेशन फ़ाइल और Crashlytics SDK जोड़ना) दोनों में कार्य करने की आवश्यकता होती है। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट Firebase को भेजने के लिए एक परीक्षण क्रैश को बाध्य करना होगा।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने यूनिटी प्रोजेक्ट में फायरबेस जोड़ें । यदि आपके पास एकता परियोजना नहीं है, तो आप एक नमूना ऐप डाउनलोड कर सकते हैं।
अनुशंसित : क्रैश-मुक्त उपयोगकर्ता, ब्रेडक्रंब लॉग और वेग अलर्ट जैसी सुविधाएं प्राप्त करने के लिए, आपको अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करना होगा।
यदि आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप Firebase कंसोल में अपनी एकीकरण टैब से Google Analytics को सक्षम कर सकते हैं।
> प्रोजेक्ट सेटिंग केयदि आप एक नया Firebase प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण कार्यप्रवाह के दौरान Google Analytics को सक्षम करें।
चरण 1 : अपने ऐप्लिकेशन में Firebase Crashlytics SDK जोड़ें
ध्यान दें कि जब आपने अपने Firebase प्रोजेक्ट के साथ अपना Unity प्रोजेक्ट पंजीकृत किया था, तो हो सकता है कि आपने पहले ही Firebase Unity SDK डाउनलोड कर लिया हो और Crashlytics पैकेज जोड़ लिया हो।
फायरबेस यूनिटी एसडीके डाउनलोड करें, फिर एसडीके को किसी सुविधाजनक स्थान पर अनज़िप करें।
फायरबेस यूनिटी एसडीके प्लेटफॉर्म-विशिष्ट नहीं है।
अपने ओपन यूनिटी प्रोजेक्ट में, एसेट्स > इंपोर्ट पैकेज > कस्टम पैकेज पर नेविगेट करें।
अनज़िप किए गए SDK से, Crashlytics SDK (
FirebaseCrashlytics.unitypackage
) आयात करने के लिए चुनें।आप किसी अन्य समर्थित Firebase उत्पाद को भी आयात कर सकते हैं।
आयात एकता पैकेज विंडो में, आयात पर क्लिक करें।
चरण 2 : Crashlytics को प्रारंभ करें
एक नई सी # स्क्रिप्ट बनाएं, फिर इसे दृश्य में
GameObject
में जोड़ें।अपना पहला दृश्य खोलें, फिर
CrashlyticsInitializer
नाम का एक खालीGameObject
बनाएं।नई वस्तु के लिए निरीक्षक में घटक जोड़ें पर क्लिक करें।
अपनी
CrashlyticsInit
स्क्रिप्ट कोCrashlyticsInitializer
ऑब्जेक्ट में जोड़ने के लिए उसे चुनें।
स्क्रिप्ट की
Start
विधि में Crashlytics को प्रारंभ करें:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase using Firebase; 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; // 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) प्रतीक अपलोड करने के लिए सेट अप करें
इस अनुभाग के चरण केवल उन Android ऐप्स के लिए आवश्यक हैं जो IL2CPP का उपयोग करते हैं।
उन Android ऐप्स के लिए जो यूनिटी के मोनो स्क्रिप्टिंग बैकएंड का उपयोग करते हैं, इन चरणों की आवश्यकता नहीं है।
Apple प्लेटफ़ॉर्म ऐप्स के लिए, इन चरणों की आवश्यकता नहीं है क्योंकि Firebase Unity Editor प्लगइन स्वचालित रूप से प्रतीकों को अपलोड करने के लिए आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करता है।
Crashlytics की Unity SDK 8.6.1+ में स्वचालित रूप से NDK क्रैश रिपोर्टिंग शामिल है, जो Crashlytics को Android पर Unity IL2CPP क्रैश की स्वचालित रूप से रिपोर्ट करने की अनुमति देता है। हालांकि, Crashlytics डैशबोर्ड में नेटिव लाइब्रेरी क्रैश के लिए प्रतीकात्मक स्टैक ट्रेस देखने के लिए, आपको Firebase CLI का उपयोग करते हुए निर्माण समय पर प्रतीक जानकारी अपलोड करनी होगी।
प्रतीक अपलोड करने के लिए सेट अप करने के लिए निम्नलिखित चरणों को पूरा करें:
फायरबेस सीएलआई स्थापित करने के लिए निर्देशों का पालन करें।
यदि आपने पहले ही सीएलआई स्थापित कर लिया है, तो इसके नवीनतम संस्करण में अपडेट करना सुनिश्चित करें।
(केवल Android API स्तर 30+ का उपयोग करने वाले ऐप्स के लिए) पॉइंटर टैगिंग को अक्षम करने के लिए अपने ऐप का
AndroidManifest.xml
टेम्प्लेट अपडेट करें:Android प्लेयर सेटिंग्स > प्रकाशन सेटिंग > बिल्ड > कस्टम मेन मेनिफेस्ट के लिए बॉक्स चेक करें।
Assets/Plugins/Android/AndroidManifest.xml
पर स्थित मेनिफेस्ट टेम्पलेट खोलें।एप्लिकेशन टैग में निम्नलिखित विशेषता जोड़ें:
<application android:allowNativeHeapPointerTagging="false" ... />
चरण 4 : अपना प्रोजेक्ट बनाएं और प्रतीक अपलोड करें
आईओएस+ (ऐप्पल प्लेटफॉर्म)
बिल्ड सेटिंग्स संवाद से, अपने प्रोजेक्ट को Xcode कार्यक्षेत्र में निर्यात करें।
अपना ऐप बनाएं।
Apple प्लेटफ़ॉर्म के लिए, Firebase Unity Editor प्लगइन स्वचालित रूप से आपके Xcode प्रोजेक्ट को प्रत्येक बिल्ड के लिए Firebase सर्वर पर Crashlytics-संगत प्रतीक फ़ाइल बनाने और अपलोड करने के लिए कॉन्फ़िगर करता है।
एंड्रॉयड
सेटिंग्स बनाएँ संवाद से, निम्न में से कोई एक कार्य करें:
अपना प्रोजेक्ट बनाने के लिए किसी Android Studio प्रोजेक्ट में निर्यात करें; या
एकता संपादक से सीधे अपना एपीके बनाएं।
निर्माण करने से पहले, सुनिश्चित करें कि बिल्ड सेटिंग्स डायलॉग में क्रिएट सिंबल.ज़िप के लिए चेकबॉक्स चेक किया गया है।
एक बार आपका निर्माण समाप्त हो जाने के बाद, एक क्रैशलाईटिक्स-संगत प्रतीक फ़ाइल उत्पन्न करें और निम्नलिखित फायरबेस सीएलआई कमांड चलाकर इसे फायरबेस सर्वर पर अपलोड करें:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : आपका Firebase Android ऐप आईडी (आपके पैकेज का नाम नहीं)
उदाहरण फायरबेस एंड्रॉइड ऐप आईडी:1:567383003300:android:17104a2ced0c9b9b
अपना फायरबेस ऐप आईडी खोजने के दो तरीके यहां दिए गए हैं:
आपकी
google-services.json
फ़ाइल में, आपकी ऐप आईडीmobilesdk_app_id
मान है; याफायरबेस कंसोल में, अपनी प्रोजेक्ट सेटिंग्स पर जाएं। अपने ऐप्स कार्ड तक स्क्रॉल करें, फिर वांछित फ़ायरबेस ऐप पर उसकी ऐप आईडी खोजने के लिए क्लिक करें।
PATH/TO/SYMBOLS प्रतीक: सीएलआई द्वारा उत्पन्न प्रतीक फ़ाइल का पथ
एंड्रॉइड स्टूडियो प्रोजेक्ट में निर्यात किया गया - PATH/TO/SYMBOLS
unityLibrary/symbols
डायरेक्टरी है, जो आपके द्वारा ग्रैडल या एंड्रॉइड स्टूडियो के माध्यम से ऐप बनाने के बाद एक्सपोर्टेड प्रोजेक्ट रूट में बनाई जाती है।एकता के भीतर से सीधे एपीके का निर्माण किया - PATH/TO/SYMBOLS सिम्बल्स प्रोजेक्ट रूट डायरेक्टरी में उत्पन्न ज़िप्ड सिंबल फ़ाइल का पथ है जब आपका निर्माण समाप्त हो गया (उदाहरण के लिए:
myproject/myapp-1.0-v100.symbols.zip
)।
प्रतीक फ़ाइल बनाने और अपलोड करने के लिए फायरबेस सीएलआई कमांड का उपयोग करने के लिए उन्नत विकल्प देखें
झंडा विवरण --generator=csym
डिफ़ॉल्ट ब्रेकपैड जनरेटर के बजाय विरासती cSYM प्रतीक फ़ाइल जनरेटर का उपयोग करता है
उपयोग के लिए अनुशंसित नहीं है। हम डिफ़ॉल्ट ब्रेकपैड प्रतीक फ़ाइल जनरेटर का उपयोग करने की सलाह देते हैं।
--generator=breakpad
ब्रेकपैड प्रतीक फ़ाइल जनरेटर का उपयोग करता है
ध्यान दें कि प्रतीक फ़ाइल निर्माण के लिए डिफ़ॉल्ट ब्रेकपैड है। इस ध्वज का उपयोग केवल तभी करें जब आपने अपने बिल्ड कॉन्फ़िगरेशन में
symbolGenerator { csym() }
जोड़ा हो और आप इसके बजाय ब्रेकपैड का उपयोग करने के लिए इसे ओवरराइड करना चाहते हैं।--dry-run
प्रतीक फ़ाइलें उत्पन्न करता है लेकिन उन्हें अपलोड नहीं करता है
यदि आप भेजी गई फ़ाइलों की सामग्री का निरीक्षण करना चाहते हैं तो यह ध्वज उपयोगी है।
--debug
अतिरिक्त डिबगिंग जानकारी प्रदान करता है
चरण 5 : सेटअप समाप्त करने के लिए परीक्षण क्रैश को बाध्य करें
Crashlytics का सेट अप पूरा करने के लिए और Firebase कंसोल के Crashlytics डैशबोर्ड में प्रारंभिक डेटा देखने के लिए, आपको एक परीक्षण क्रैश के लिए बाध्य करना होगा।
एक मौजूदा
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 non-fatal errors 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"); } } }
अपना निर्माण पूरा होने के बाद अपना ऐप बनाएं और प्रतीक जानकारी अपलोड करें।
आईओएस+ : फायरबेस यूनिटी एडिटर प्लगइन आपकी सिंबल फाइल को अपलोड करने के लिए आपके एक्सकोड प्रोजेक्ट को स्वचालित रूप से कॉन्फ़िगर करता है।
Android : IL2CPP का उपयोग करने वाले आपके Android ऐप्स के लिए, अपनी प्रतीक फ़ाइल अपलोड करने के लिए Firebase CLI
crashlytics:symbols:upload
कमांड चलाएँ।
अपना ऐप चलाएं। एक बार जब आपका ऐप चल रहा हो, तो डिवाइस लॉग देखें और
CrashlyticsTester
से अपवाद के ट्रिगर होने की प्रतीक्षा करें।iOS+ : Xcode के निचले फलक में लॉग देखें।
एंड्रॉइड : टर्मिनल में निम्न कमांड चलाकर लॉग देखें:
adb logcat
।
जब आप अपने डिवाइस लॉग में अपवाद देखते हैं, तो अपने ऐप को पुनरारंभ करें ताकि यह क्रैश रिपोर्ट फायरबेस को भेज सके।
अपना परीक्षण क्रैश देखने के लिए Firebase कंसोल के Crashlytics डैशबोर्ड पर जाएं।
यदि आपने कंसोल को रीफ़्रेश किया है और आप अभी भी पांच मिनट के बाद भी परीक्षण क्रैश नहीं देख रहे हैं, तो यह देखने के लिए डीबग लॉगिंग सक्षम करें कि आपका ऐप क्रैश रिपोर्ट भेज रहा है या नहीं।
और बस! Crashlytics अब क्रैश के लिए आपके ऐप की निगरानी कर रहा है। अपनी सभी रिपोर्ट और आंकड़े देखने और उनकी जांच करने के लिए Crashlytics डैशबोर्ड पर जाएं।
अगले कदम
- ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियाँ, और गैर-घातक त्रुटियों की ट्रैकिंग जोड़कर अपने क्रैश रिपोर्ट सेटअप को अनुकूलित करें ।
- Google Play के साथ एकीकृत करें ताकि आप सीधे Crashlytics डैशबोर्ड में Google Play ट्रैक द्वारा अपने Android ऐप की क्रैश रिपोर्ट को फ़िल्टर कर सकें। यह आपको विशिष्ट बिल्ड पर अपने डैशबोर्ड को बेहतर ढंग से केंद्रित करने की अनुमति देता है।