यह क्विकस्टार्ट वर्णन करता है कि फायरबेस क्रैशलिटिक्स एसडीके के साथ अपने ऐप में फायरबेस क्रैशलिटिक्स कैसे सेट करें ताकि आप फायरबेस कंसोल में व्यापक क्रैश रिपोर्ट प्राप्त कर सकें।
क्रैशलिटिक्स को सेट करने के लिए फायरबेस कंसोल और आपके आईडीई दोनों में कार्यों की आवश्यकता होती है (जैसे फायरबेस कॉन्फ़िगरेशन फ़ाइल और क्रैशलिटिक्स एसडीके जोड़ना)। सेटअप पूरा करने के लिए, आपको अपनी पहली क्रैश रिपोर्ट फ़ायरबेस पर भेजने के लिए एक परीक्षण क्रैश को बाध्य करना होगा।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने यूनिटी प्रोजेक्ट में फायरबेस जोड़ें । यदि आपके पास यूनिटी प्रोजेक्ट नहीं है, तो आप एक नमूना ऐप डाउनलोड कर सकते हैं।
अनुशंसित : क्रैश-मुक्त उपयोगकर्ता, ब्रेडक्रंब लॉग और वेग अलर्ट जैसी सुविधाएं प्राप्त करने के लिए, आपको अपने फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करना होगा।
यदि आपके मौजूदा फायरबेस प्रोजेक्ट में Google Analytics सक्षम नहीं है, तो आप अपने एकीकरण टैब से Google Analytics सक्षम कर सकते हैं
यदि आप एक नया फायरबेस प्रोजेक्ट बना रहे हैं, तो प्रोजेक्ट निर्माण वर्कफ़्लो के दौरान Google Analytics सक्षम करें।
चरण 1 : अपने ऐप में Crashlytics SDK जोड़ें
ध्यान दें कि जब आपने अपने यूनिटी प्रोजेक्ट को अपने फायरबेस प्रोजेक्ट के साथ पंजीकृत किया था, तो हो सकता है कि आपने पहले ही फायरबेस यूनिटी एसडीके डाउनलोड कर लिया हो और क्रैशलाईटिक्स पैकेज जोड़ लिया हो।
फायरबेस यूनिटी एसडीके डाउनलोड करें, फिर एसडीके को किसी सुविधाजनक स्थान पर अनज़िप करें।
फायरबेस यूनिटी एसडीके प्लेटफ़ॉर्म-विशिष्ट नहीं है।
अपने खुले यूनिटी प्रोजेक्ट में, एसेट्स > इंपोर्ट पैकेज > कस्टम पैकेज पर नेविगेट करें।
अनज़िप्ड SDK से, Crashlytics SDK (
FirebaseCrashlytics.unitypackage
) आयात करने का चयन करें।आप किसी अन्य समर्थित फायरबेस उत्पाद को भी आयात कर सकते हैं।
आयात एकता पैकेज विंडो में, आयात पर क्लिक करें।
चरण 2 : क्रैशलिटिक्स प्रारंभ करें
एक नई C# स्क्रिप्ट बनाएं, फिर उसे दृश्य में
GameObject
में जोड़ें।अपना पहला दृश्य खोलें, फिर
CrashlyticsInitializer
नामक एक खालीGameObject
बनाएं।नए ऑब्जेक्ट के लिए इंस्पेक्टर में घटक जोड़ें पर क्लिक करें।
इसे
CrashlyticsInitializer
ऑब्जेक्ट में जोड़ने के लिए अपनीCrashlyticsInit
स्क्रिप्ट का चयन करें।
स्क्रिप्ट की
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 : अपना प्रोजेक्ट बनाएं और प्रतीक अपलोड करें
आईओएस+ (एप्पल प्लेटफॉर्म)
बिल्ड सेटिंग्स संवाद से, अपने प्रोजेक्ट को Xcode कार्यक्षेत्र में निर्यात करें।
अपना ऐप बनाएं.
Apple प्लेटफ़ॉर्म के लिए, फ़ायरबेस यूनिटी एडिटर प्लगइन प्रत्येक बिल्ड के लिए फ़ायरबेस सर्वर पर क्रैशलाइटिक्स-संगत प्रतीक फ़ाइल बनाने और अपलोड करने के लिए स्वचालित रूप से आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करता है।
एंड्रॉयड
बिल्ड सेटिंग्स संवाद से, निम्न में से कोई एक कार्य करें:
अपना प्रोजेक्ट बनाने के लिए एंड्रॉइड स्टूडियो प्रोजेक्ट में निर्यात करें; या
सीधे यूनिटी एडिटर से अपना एपीके बनाएं।
निर्माण से पहले, सुनिश्चित करें कि बिल्ड सेटिंग्स संवाद में Create Symbols.zip के लिए चेकबॉक्स चेक किया गया है।
एक बार जब आपका निर्माण पूरा हो जाए, तो एक क्रैशलिटिक्स-संगत प्रतीक फ़ाइल बनाएं और इसे निम्नलिखित फायरबेस सीएलआई कमांड चलाकर फायरबेस सर्वर पर अपलोड करें:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : आपका फायरबेस एंड्रॉइड ऐप आईडी (आपके पैकेज का नाम नहीं)
उदाहरण फायरबेस एंड्रॉइड ऐप आईडी: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
डिफ़ॉल्ट ब्रेकपैड जनरेटर के बजाय लीगेसी सीएसवाईएम प्रतीक फ़ाइल जनरेटर का उपयोग करता है
उपयोग के लिए अनुशंसित नहीं है. हम डिफ़ॉल्ट ब्रेकपैड प्रतीक फ़ाइल जनरेटर का उपयोग करने की अनुशंसा करते हैं।
--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 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"); } } }
अपना ऐप बनाएं और निर्माण पूरा होने के बाद प्रतीक जानकारी अपलोड करें।
iOS+ : फायरबेस यूनिटी एडिटर प्लगइन आपकी प्रतीक फ़ाइल अपलोड करने के लिए आपके Xcode प्रोजेक्ट को स्वचालित रूप से कॉन्फ़िगर करता है।
एंड्रॉइड : आपके एंड्रॉइड ऐप्स के लिए जो IL2CPP का उपयोग करते हैं, अपनी प्रतीक फ़ाइल अपलोड करने के लिए फायरबेस सीएलआई
crashlytics:symbols:upload
कमांड चलाएं।
अपना ऐप चलाएँ. एक बार जब आपका ऐप चल रहा हो, तो डिवाइस लॉग देखें और
CrashlyticsTester
से अपवाद ट्रिगर होने की प्रतीक्षा करें।iOS+ : Xcode के निचले फलक में लॉग देखें।
एंड्रॉइड : टर्मिनल में निम्नलिखित कमांड चलाकर लॉग देखें:
adb logcat
।
अपना परीक्षण क्रैश देखने के लिए फायरबेस कंसोल के क्रैशलाइटिक्स डैशबोर्ड पर जाएं।
यदि आपने कंसोल को रीफ्रेश किया है और आपको पांच मिनट के बाद भी परीक्षण क्रैश नहीं दिख रहा है, तो यह देखने के लिए डीबग लॉगिंग सक्षम करें कि आपका ऐप क्रैश रिपोर्ट भेज रहा है या नहीं।
और बस! क्रैशलाईटिक्स अब आपके ऐप के क्रैश होने की निगरानी कर रहा है। अपनी सभी रिपोर्ट और आँकड़े देखने और जाँचने के लिए क्रैशलाइटिक्स डैशबोर्ड पर जाएँ।
अगले कदम
- (अनुशंसित) IL2CPP का उपयोग करने वाले Android ऐप्स के लिए, GWP-ASan रिपोर्ट एकत्रित करके मूल मेमोरी त्रुटियों के कारण होने वाले क्रैश को डीबग करने में सहायता प्राप्त करें। ये मेमोरी-संबंधित त्रुटियां आपके ऐप के भीतर मेमोरी भ्रष्टाचार से जुड़ी हो सकती हैं, जो ऐप सुरक्षा कमजोरियों का प्रमुख कारण है। इस डिबगिंग सुविधा का लाभ उठाने के लिए, सुनिश्चित करें कि आपका ऐप नवीनतम क्रैशलाइटिक्स एसडीके फॉर यूनिटी (v10.7.0+) का उपयोग करता है और इसमें GWP-ASan स्पष्ट रूप से सक्षम है (आपको अपने एंड्रॉइड ऐप मेनिफेस्ट को संशोधित करने की आवश्यकता है)।
- ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियाँ और गैर-घातक त्रुटियों की ट्रैकिंग जोड़कर अपनी क्रैश रिपोर्ट सेटअप को अनुकूलित करें ।
- Google Play के साथ एकीकृत करें ताकि आप अपने Android ऐप की क्रैश रिपोर्ट को Google Play ट्रैक द्वारा सीधे Crashlytics डैशबोर्ड में फ़िल्टर कर सकें। यह आपको अपने डैशबोर्ड को विशिष्ट बिल्ड पर बेहतर ढंग से केंद्रित करने की अनुमति देता है।