इस क्विकस्टार्ट में, अपने ऐप्लिकेशन में Firebase Crashlytics को सेट अप करने का तरीका बताया गया है Firebase Crashlytics SDK टूल के साथ काम करेगा, ताकि ऐप्लिकेशन के क्रैश होने से जुड़ी पूरी जानकारी मिल सके Firebase कंसोल में रिपोर्ट देखी जा सकती हैं.
Crashlytics को सेट अप करने के लिए, Firebase कंसोल और आपका IDE (जैसे, Firebase कॉन्फ़िगरेशन फ़ाइल और Crashlytics जोड़ना SDK टूल). सेटअप पूरा करने के लिए, आपको पहले टेस्ट क्रैश को ज़बरदस्ती भेजना होगा Firebase को क्रैश रिपोर्ट.
शुरू करने से पहले
अगर आपने पहले से ऐसा नहीं किया है, तो Firebase जोड़ें को जोड़ा भी जा सकता है. अगर आपके पास Unity प्रोजेक्ट नहीं है, तो ऐप्लिकेशन का नमूना.
सुझाव: अपने आप पाने के लिए ब्रेडक्रंब लॉग उपयोगकर्ता की उन कार्रवाइयों को समझने के लिए जिनकी वजह से क्रैश, नॉन-घातक या ANR इवेंट होता है. आपको अपने Firebase प्रोजेक्ट में Google Analytics को चालू करना होगा.
अगर आपके मौजूदा Firebase प्रोजेक्ट में Google Analytics नहीं है चालू है, तो आप इनसे Google Analytics को चालू कर सकते हैं: आपके इंटिग्रेशन टैब
> प्रोजेक्ट सेटिंगFirebase कंसोल में. अगर नया Firebase प्रोजेक्ट बनाया जा रहा है, तो Google Analytics चालू करें का इस्तेमाल करते हैं.
पहला चरण: अपने ऐप्लिकेशन में Crashlytics SDK टूल जोड़ें
ध्यान दें कि अपने Firebase प्रोजेक्ट के साथ Unity प्रोजेक्ट को रजिस्टर करने पर, ऐसा हो सकता है कि पहले ही Firebase Unity SDK टूल डाउनलोड कर लिया गया हो और पैकेज जोड़ दिए गए हों इन चरणों में बताया गया है.
Firebase Unity SDK टूल डाउनलोड करें. इसके बाद, SDK टूल को किसी दूसरी जगह अनज़िप करें. Firebase Unity SDK टूल, प्लैटफ़ॉर्म के हिसाब से नहीं है.
अपने खुले हुए Unity प्रोजेक्ट में, यहां जाएं ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज.
अनज़िप किए गए SDK टूल से, Crashlytics SDK टूल को इंपोर्ट करने का विकल्प चुनें (
FirebaseCrashlytics.unitypackage
).इस सुविधा का फ़ायदा पाने के लिए ब्रेडक्रंब लॉग अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल भी जोड़ें (
FirebaseAnalytics.unitypackage
). पक्का करें कि Google Analytics चालू है आपके Firebase प्रोजेक्ट में.Unity पैकेज को इंपोर्ट करें विंडो में, इंपोर्ट करें पर क्लिक करें.
दूसरा चरण: Crashlytics को शुरू करें
एक नई C# स्क्रिप्ट बनाएं. इसके बाद, उसे सीन में
GameObject
में जोड़ें.अपना पहला सीन खोलें, फिर नाम का एक खाली
GameObject
बनाएंCrashlyticsInitializer
.नए ऑब्जेक्ट के लिए इंस्पेक्टर में जाकर, कॉम्पोनेंट जोड़ें पर क्लिक करें.
अपनी
CrashlyticsInit
स्क्रिप्ट को चुनें और उसेCrashlyticsInitializer
ऑब्जेक्ट.
स्क्रिप्ट की
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 के मोनो स्क्रिप्टिंग बैकएंड का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, यह तरीका की ज़रूरत नहीं है.
Apple प्लैटफ़ॉर्म ऐप्लिकेशन के लिए, यह तरीका ज़रूरी नहीं है, क्योंकि Firebase Unity एडिटर प्लगिन, सिंबल अपलोड करने के लिए आपके Xcode प्रोजेक्ट को अपने-आप कॉन्फ़िगर करता है.
Crashlytics के Unity SDK 8.6.1+ में, एनडीके क्रैश की रिपोर्ट अपने-आप शामिल होती है. इसकी मदद से, Crashlytics अपने-आप Unity को रिपोर्ट कर सकता है IL2CPP Android पर क्रैश हो जाता है. हालांकि, नेटिव लाइब्रेरी में सिम्बॉलिकेट्ड स्टैक ट्रेस देखने के लिए Crashlytics डैशबोर्ड में क्रैश होता है, तो आपको यहां प्रतीक जानकारी अपलोड करनी होगी Firebase सीएलआई का इस्तेमाल करके समय बनाएं.
सिंबल अपलोड करने की सुविधा सेट अप करने के लिए, दिए गए निर्देशों का पालन करें Firebase सीएलआई इंस्टॉल करें.
अगर आपने सीएलआई को पहले ही इंस्टॉल कर लिया है, तो ऐप्लिकेशन को नए वर्शन पर अपडेट करें.
चौथा चरण: अपना प्रोजेक्ट बनाना और सिंबल अपलोड करना
iOS+ (Apple प्लैटफ़ॉर्म)
बिल्ड सेटिंग डायलॉग से, अपने प्रोजेक्ट को Xcode फ़ाइल फ़ोल्डर में एक्सपोर्ट करें.
अपना ऐप्लिकेशन बनाएं.
Apple प्लैटफ़ॉर्म के लिए, Firebase Unity Editor प्लगिन अपने-आप काम करता है यह आपके Xcode प्रोजेक्ट को कॉन्फ़िगर करके हर बिल्ड के लिए Firebase सर्वर पर Crashlytics-साथ काम करने वाली सिंबल फ़ाइल.
Android
बिल्ड सेटिंग डायलॉग से, इनमें से कोई एक काम करें:
अपना प्रोजेक्ट बनाने के लिए किसी Android Studio प्रोजेक्ट में एक्सपोर्ट करना; या
सीधे Unity Editor से अपना APK बनाएं.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है बनाने से पहले, यह पक्का करें कि प्रशंसकों की सूची बनाएं के लिए चेकबॉक्स है बिल्ड सेटिंग डायलॉग में चेक किया गया है.
बिल्ड पूरा होने के बाद, Crashlytics के साथ काम करने वाला सिंबल जनरेट करें फ़ाइल को डाउनलोड और उसे Firebase सर्वर पर अपलोड करने के लिए, 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: सिंबल फ़ाइल का पाथ सीएलआई
किसी Android Studio प्रोजेक्ट में एक्सपोर्ट किया गया — PATH/TO/SYMBOLS,
unityLibrary/symbols
डायरेक्ट्री है, इसे, ऐप्लिकेशन बनाने के बाद एक्सपोर्ट किए गए प्रोजेक्ट रूट में बनाया जाता है Gradle या Android Studio से.APK को सीधे Unity के अंदर से बनाया गया — PATH/TO/SYMBOLS, ज़िप की गई सिंबल फ़ाइल का पाथ है बिल्ड पूरा होने पर, प्रोजेक्ट रूट डायरेक्ट्री में जनरेट होता है (उदाहरण के लिए:
).myproject/myapp-1.0-v100.symbols.zip
का उपयोग करने के लिए सिंबल फ़ाइल जनरेट करने और अपलोड करने के लिए, Firebase सीएलआई कमांड
फ़्लैग करें जानकारी --generator=csym
इसके बजाय, लेगसी cSYM सिंबल फ़ाइल जनरेटर का इस्तेमाल करता है डिफ़ॉल्ट ब्रेकपैड जनरेटर
इस्तेमाल करने का सुझाव नहीं दिया जाता. हमारा सुझाव है कि आप डिफ़ॉल्ट ब्राउज़र का इस्तेमाल करें ब्रेकपैड सिंबल फ़ाइल जनरेटर.
--generator=breakpad
ब्रेकपैड सिंबल के फ़ाइल जनरेटर का इस्तेमाल करता है
ध्यान दें कि सिंबल फ़ाइल जनरेट करने के लिए डिफ़ॉल्ट तरीका Breakpad है. इस फ़्लैग का इस्तेमाल सिर्फ़ तब करें, जब आपने इसे जोड़ा हो
कॉन्फ़िगर कर सकते हैं और आप इसका इस्तेमाल ब्रेकपैड का इस्तेमाल करें.symbolGenerator { csym() }
--dry-run
सिंबल वाली फ़ाइलें जनरेट करता है, लेकिन उन्हें अपलोड नहीं करता
यह फ़्लैग तब काम आता है, जब आपको जिन्हें भेजा जाता है.
--debug
डीबग करने के बारे में ज़्यादा जानकारी देता है
पांचवां चरण: सेटअप पूरा करने के लिए, टेस्ट क्रैश को हर हाल में पूरा करना
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+: Firebase यूनिटी एडिटर प्लगिन आपकी सिंबल फ़ाइल अपलोड करने के लिए Xcode प्रोजेक्ट.
Android: IL2CPP का इस्तेमाल करने वाले अपने Android ऐप्लिकेशन के लिए, Firebase CLI
crashlytics:symbols:upload
निर्देश देकर सिंबल फ़ाइल.
अपना ऐप्लिकेशन चलाएं. जब आपका ऐप्लिकेशन चलने लगे, तो डिवाइस लॉग देखें और इंतज़ार करें
CrashlyticsTester
से ट्रिगर होने वाला अपवाद.iOS+: Xcode के निचले पैनल में लॉग देखें.
Android: टर्मिनल में इस निर्देश को चलाकर लॉग देखें:
adb logcat
.
इसके Crashlytics डैशबोर्ड पर जाएं Firebase कंसोल का इस्तेमाल करें.
अगर आपने कंसोल रीफ़्रेश कर दिया है और आपको अब भी टेस्ट क्रैश नहीं दिख रहा है, तो पाँच मिनट बाद, डीबग लॉगिंग चालू करें यह देखने के लिए कि आपका ऐप्लिकेशन क्रैश रिपोर्ट भेज रहा है या नहीं.
बस, हो गया. Crashlytics अब आपके ऐप्लिकेशन के क्रैश होने पर नज़र रख रहा है. देखने और जांच करने के लिए Crashlytics डैशबोर्ड पर जाएं अपनी सभी रिपोर्ट और आंकड़ों की समीक्षा कर सकते हैं.
अगले चरण
- (सुझाया गया) IL2CPP का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, इसके ज़रिए नेटिव मेमोरी गड़बड़ियों की वजह से होने वाले क्रैश को डीबग करने में मदद पाएं इकट्ठा किया जा रहा है GWP-ASan की रिपोर्ट. मेमोरी से जुड़ी ये गड़बड़ियां, मेमोरी के खराब होने से जुड़ी हो सकती हैं जो ऐप्लिकेशन की सुरक्षा से जुड़े जोखिमों की मुख्य वजह है. डीबग करने की इस सुविधा का फ़ायदा पाने के लिए, पक्का करें कि आपका ऐप्लिकेशन Unity के लिए सबसे नए Crashlytics SDK टूल (v10.7.0+) का इस्तेमाल करता है और इसमें GWP-ASan को साफ़ तौर पर चालू किया गया (ज़रूरी है कि आप अपने Android ऐप्लिकेशन मेनिफ़ेस्ट में बदलाव करें).
- क्रैश रिपोर्ट के सेटअप को पसंद के मुताबिक बनाना इसके लिए ऑप्ट-इन रिपोर्टिंग, लॉग, कुंजियां, और साधारण गड़बड़ियों की ट्रैकिंग जोड़ें.
- Google Play के साथ इंटिग्रेट करें, ताकि आपके पास अपने Android ऐप्लिकेशन की क्रैश रिपोर्ट को Google Play ट्रैक के हिसाब से फ़िल्टर करने का विकल्प है. Crashlytics डैशबोर्ड. इससे आपको अपने डैशबोर्ड को खास बिल्ड पर बेहतर तरीके से फ़ोकस करने में मदद मिलती है.