এই কুইকস্টার্ট বর্ণনা করে কিভাবে Firebase Crashlytics SDK এর সাথে আপনার অ্যাপে Firebase Crashlytics সেট আপ করবেন যাতে আপনি Firebase কনসোলে ব্যাপক ক্র্যাশ রিপোর্ট পেতে পারেন।
Crashlytics সেট আপ করার জন্য Firebase কনসোল এবং আপনার IDE উভয়েরই কাজ প্রয়োজন (যেমন একটি Firebase কনফিগারেশন ফাইল এবং Crashlytics SDK যোগ করা)। সেটআপ শেষ করতে, Firebase-এ আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠাতে আপনাকে একটি পরীক্ষা ক্র্যাশ করতে বাধ্য করতে হবে।
আপনি শুরু করার আগে
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার ইউনিটি প্রকল্পে Firebase যোগ করুন । আপনার যদি ইউনিটি প্রজেক্ট না থাকে, আপনি একটি নমুনা অ্যাপ ডাউনলোড করতে পারেন।
প্রস্তাবিত : ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্ট পর্যন্ত ব্যবহারকারীর অ্যাকশন বোঝার জন্য স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পেতে, আপনাকে আপনার Firebase প্রোজেক্টে Google Analytics সক্ষম করতে হবে।
যদি আপনার বিদ্যমান ফায়ারবেস প্রকল্পে Google Analytics সক্ষম না থাকে, তাহলে আপনি আপনার ইন্টিগ্রেশন ট্যাব থেকে Google Analytics সক্ষম করতে পারেন
Firebase কনসোলে প্রকল্প সেটিংস । >আপনি যদি একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করেন, তাহলে প্রোজেক্ট তৈরির ওয়ার্কফ্লো চলাকালীন Google Analytics সক্ষম করুন।
ধাপ 1 : আপনার অ্যাপে Crashlytics SDK যোগ করুন
মনে রাখবেন যে আপনি যখন আপনার Firebase প্রকল্পের সাথে আপনার ইউনিটি প্রজেক্ট নিবন্ধন করেন, আপনি হয়ত ইতিমধ্যেই Firebase Unity SDK ডাউনলোড করেছেন এবং নিম্নলিখিত ধাপে বর্ণিত প্যাকেজগুলি যোগ করেছেন।
Firebase Unity SDK ডাউনলোড করুন, তারপর সুবিধাজনক জায়গায় SDK আনজিপ করুন। Firebase Unity SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়।
আপনার ওপেন ইউনিটি প্রকল্পে, সম্পদ > আমদানি প্যাকেজ > কাস্টম প্যাকেজে নেভিগেট করুন।
আনজিপ করা SDK থেকে, Crashlytics SDK (
FirebaseCrashlytics.unitypackage
) আমদানি করতে নির্বাচন করুন।ব্রেডক্রাম্ব লগের সুবিধা নিতে আপনার অ্যাপে (
FirebaseAnalytics.unitypackage
) Google Analytics এর জন্য Firebase SDK যোগ করুন। আপনার Firebase প্রোজেক্টে Google Analytics চালু আছে কিনা তা নিশ্চিত করুন।ইম্পোর্ট ইউনিটি প্যাকেজ উইন্ডোতে, আমদানি ক্লিক করুন।
ধাপ 2 : Crashlytics শুরু করুন
একটি নতুন C# স্ক্রিপ্ট তৈরি করুন, তারপর দৃশ্যে একটি
GameObject
এ যোগ করুন।আপনার প্রথম দৃশ্য খুলুন, তারপর
CrashlyticsInitializer
নামে একটি খালিGameObject
তৈরি করুন।নতুন অবজেক্টের জন্য ইন্সপেক্টরে যোগ কম্পোনেন্ট ক্লিক করুন।
CrashlyticsInitializer
অবজেক্টে যোগ করতে আপনারCrashlytics Init
স্ক্রিপ্ট নির্বাচন করুন।
স্ক্রিপ্টের
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() // ... }
ধাপ 3 : (শুধুমাত্র অ্যান্ড্রয়েড) প্রতীক আপলোড করার জন্য সেট আপ করুন
এই ধাপটি শুধুমাত্র IL2CPP ব্যবহার করে এমন Android অ্যাপের জন্য প্রয়োজন।
ইউনিটির মোনো স্ক্রিপ্টিং ব্যাকএন্ড ব্যবহার করে এমন অ্যান্ড্রয়েড অ্যাপগুলির জন্য, এই পদক্ষেপগুলির প্রয়োজন নেই৷
Apple প্ল্যাটফর্ম অ্যাপগুলির জন্য, এই পদক্ষেপগুলির প্রয়োজন নেই কারণ Firebase Unity Editor প্লাগইন স্বয়ংক্রিয়ভাবে আপনার Xcode প্রকল্পটিকে প্রতীক আপলোড করতে কনফিগার করে।
Crashlytics 's Unity SDK 8.6.1+ স্বয়ংক্রিয়ভাবে NDK ক্র্যাশ রিপোর্টিং অন্তর্ভুক্ত করে, যা Crashlytics স্বয়ংক্রিয়ভাবে Android এ Unity IL2CPP ক্র্যাশ রিপোর্ট করতে দেয়। যাইহোক, Crashlytics ড্যাশবোর্ডে নেটিভ লাইব্রেরি ক্র্যাশের জন্য প্রতীকী স্ট্যাক ট্রেস দেখতে, আপনাকে Firebase CLI ব্যবহার করে বিল্ড টাইমে প্রতীক তথ্য আপলোড করতে হবে।
প্রতীক আপলোড করার জন্য সেট আপ করতে, Firebase CLI ইনস্টল করার নির্দেশাবলী অনুসরণ করুন।
আপনি যদি ইতিমধ্যেই CLI ইনস্টল করে থাকেন, তাহলে নিশ্চিত করুন যে এটির সর্বশেষ সংস্করণে আপডেট করুন ।
ধাপ 4 : আপনার প্রকল্প তৈরি করুন এবং প্রতীক আপলোড করুন
iOS+ (অ্যাপল প্ল্যাটফর্ম)
বিল্ড সেটিংস ডায়ালগ থেকে, আপনার প্রোজেক্টটি এক্সকোড ওয়ার্কস্পেসে এক্সপোর্ট করুন।
আপনার অ্যাপ তৈরি করুন।
Apple প্ল্যাটফর্মের জন্য, Firebase ইউনিটি এডিটর প্লাগইন স্বয়ংক্রিয়ভাবে প্রতিটি বিল্ডের জন্য Firebase সার্ভারে একটি Crashlytics সামঞ্জস্যপূর্ণ প্রতীক ফাইল তৈরি এবং আপলোড করতে আপনার Xcode প্রকল্পকে কনফিগার করে।
অ্যান্ড্রয়েড
বিল্ড সেটিংস ডায়ালগ থেকে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
আপনার প্রকল্প তৈরি করতে একটি Android স্টুডিও প্রকল্পে রপ্তানি করুন; বা
ইউনিটি এডিটর থেকে সরাসরি আপনার APK তৈরি করুন।
বিল্ড করার আগে, বিল্ড সেটিংস ডায়ালগে চিহ্ন তৈরি করুন.জিপ -এর চেকবক্সটি চেক করা আছে তা নিশ্চিত করুন।
আপনার বিল্ড শেষ হয়ে গেলে, একটি Crashlytics -compatible প্রতীক ফাইল তৈরি করুন এবং নিম্নলিখিত Firebase CLI কমান্ডটি চালিয়ে Firebase সার্ভারে আপলোড করুন:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : আপনার Firebase Android App ID (আপনার প্যাকেজের নাম নয়)
উদাহরণ ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি:1:567383003300:android:17104a2ced0c9b9b
আপনার ফায়ারবেস অ্যাপ আইডি খোঁজার দুটি উপায় এখানে রয়েছে:
আপনার
google-services.json
ফাইলে, আপনার অ্যাপ আইডি হলmobilesdk_app_id
মান; বাFirebase কনসোলে, আপনার প্রকল্প সেটিংসে যান। আপনার অ্যাপস কার্ডে নিচে স্ক্রোল করুন, তারপর পছন্দসই Firebase অ্যাপের অ্যাপ আইডি খুঁজতে ক্লিক করুন।
PATH/TO/SYMBOLS : CLI দ্বারা তৈরি প্রতীক ফাইলের পথ
একটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পে রপ্তানি করা হয়েছে — PATH/TO/SYMBOLS হল
unityLibrary/symbols
ডিরেক্টরি, যা আপনি Gradle বা Android Studio এর মাধ্যমে অ্যাপটি তৈরি করার পরে রপ্তানি করা প্রজেক্ট রুটে তৈরি করা হয়।Unity ক্যের মধ্যে থেকে সরাসরি এপিকে তৈরি করা - PATH/TO/SYMBOLS হ'ল আপনার বিল্ড শেষ হওয়ার পরে প্রকল্পের রুট ডিরেক্টরিতে উত্পন্ন জিপড প্রতীক ফাইলের পথ (উদাহরণস্বরূপ:
myproject/myapp-1.0-v100.symbols.zip
)।
প্রতীক ফাইল জেনারেশন এবং আপলোডের জন্য Firebase সিএলআই কমান্ড ব্যবহারের জন্য উন্নত বিকল্পগুলি দেখুন
পতাকা বর্ণনা --generator=csym
ডিফল্ট ব্রেকপ্যাড জেনারেটরের পরিবর্তে লিগ্যাসি সিএসওয়াইএম প্রতীক ফাইল জেনারেটর ব্যবহার করে
ব্যবহারের জন্য প্রস্তাবিত নয়। আমরা ডিফল্ট ব্রেকপ্যাড প্রতীক ফাইল জেনারেটর ব্যবহার করার পরামর্শ দিই।
--generator=breakpad
ব্রেকপ্যাড প্রতীক ফাইল জেনারেটর ব্যবহার করে
নোট করুন যে প্রতীক ফাইল প্রজন্মের জন্য ডিফল্ট হ'ল ব্রেকপ্যাড। আপনি যুক্ত হলে কেবল এই পতাকাটি ব্যবহার করুন
আপনার বিল্ড কনফিগারেশনে symbolGenerator { csym() }
এবং আপনি পরিবর্তে ব্রেকপ্যাড ব্যবহার করতে এটি ওভাররাইড করতে চান।--dry-run
প্রতীক ফাইল উত্পন্ন করে তবে সেগুলি আপলোড করে না
আপনি যদি প্রেরণ করা ফাইলগুলির সামগ্রীটি পরিদর্শন করতে চান তবে এই পতাকাটি দরকারী।
--debug
অতিরিক্ত ডিবাগিং তথ্য সরবরাহ করে
পদক্ষেপ 5 : সেটআপ শেষ করতে একটি পরীক্ষা ক্র্যাশ জোর করুন
Firebase কনসোলের Crashlytics ড্যাশবোর্ডে 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"); } } }
আপনার বিল্ড শেষ হওয়ার পরে আপনার অ্যাপ্লিকেশনটি তৈরি করুন এবং প্রতীক তথ্য আপলোড করুন।
আইওএস+ : ফায়ারবেস unity ক্য সম্পাদক প্লাগইন আপনার প্রতীক ফাইলটি আপলোড করতে স্বয়ংক্রিয়ভাবে আপনার এক্সকোড প্রকল্পটি কনফিগার করে।
অ্যান্ড্রয়েড : আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য যা আইএল 2 সিপিপি ব্যবহার করে, Firebase সিএলআই
crashlytics:symbols:upload
কমান্ডটি চালান।
আপনার অ্যাপ্লিকেশন চালান। আপনার অ্যাপটি চলার পরে, ডিভাইস লগটি দেখুন এবং
CrashlyticsTester
থেকে ট্রিগার ব্যতিক্রমের জন্য অপেক্ষা করুন।আইওএস+ : এক্সকোডের নীচের অংশে লগগুলি দেখুন।
অ্যান্ড্রয়েড : টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে লগগুলি দেখুন:
adb logcat
।
আপনার পরীক্ষার ক্র্যাশটি দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।
যদি আপনি কনসোলটি রিফ্রেশ করেছেন এবং আপনি এখনও পাঁচ মিনিটের পরে পরীক্ষার ক্র্যাশটি দেখছেন না, আপনার অ্যাপটি ক্র্যাশ রিপোর্ট প্রেরণ করছে কিনা তা দেখার জন্য ডিবাগ লগিং সক্ষম করুন ।
আর এটাই! Crashlytics এখন ক্র্যাশগুলির জন্য আপনার অ্যাপটি পর্যবেক্ষণ করছে। আপনার সমস্ত প্রতিবেদন এবং পরিসংখ্যান দেখতে এবং তদন্ত করতে Crashlytics ড্যাশবোর্ডে যান।
পরবর্তী পদক্ষেপ
- (প্রস্তাবিত) অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য যা আইএল 2 সিপিপি ব্যবহার করে, জিডব্লিউপি-আসান প্রতিবেদনগুলি সংগ্রহ করে দেশীয় মেমরির ত্রুটির কারণে সৃষ্ট ক্র্যাশগুলি ডিবাগিং ক্র্যাশগুলি সহায়তা পান। এই মেমরি সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপ্লিকেশনটির মধ্যে মেমরি দুর্নীতির সাথে যুক্ত হতে পারে, যা অ্যাপ্লিকেশন সুরক্ষা দুর্বলতার প্রধান কারণ। এই ডিবাগিং বৈশিষ্ট্যটির সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি ইউনিটি (v10.7.0+) এর জন্য সর্বশেষতম Crashlytics এসডিকে ব্যবহার করেছে এবং জিডব্লিউপি-আসান স্পষ্টভাবে সক্ষম করেছে (আপনাকে আপনার অ্যান্ড্রয়েড অ্যাপ ম্যানিফেস্টটি সংশোধন করতে হবে)।
- অপ্ট-ইন রিপোর্টিং, লগ, কীগুলি এবং অ-মারাত্মক ত্রুটিগুলির ট্র্যাকিং যুক্ত করে আপনার ক্র্যাশ রিপোর্ট সেটআপটি কাস্টমাইজ করুন ।
- Google Play সাথে সংহত করুন যাতে আপনি Crashlytics ড্যাশবোর্ডে সরাসরি Google Play ট্র্যাকের মাধ্যমে আপনার অ্যান্ড্রয়েড অ্যাপের ক্র্যাশ রিপোর্টগুলি ফিল্টার করতে পারেন। এটি আপনাকে নির্দিষ্ট বিল্ডগুলিতে আপনার ড্যাশবোর্ডকে আরও ভালভাবে ফোকাস করতে দেয়।