এই কুইকস্টার্ট বর্ণনা করে কিভাবে 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-এর মধ্যে থেকে সরাসরি APK তৈরি করুন — PATH/TO/SYMBOLS হল জিপ করা সিম্বল ফাইলের পথ যা প্রোজেক্ট রুট ডিরেক্টরিতে জেনারেট করা হয় যখন আপনার বিল্ড শেষ হয় (উদাহরণস্বরূপ:
myproject/myapp-1.0-v100.symbols.zip
)।
প্রতীক ফাইল তৈরি এবং আপলোডের জন্য Firebase CLI কমান্ড ব্যবহার করার জন্য উন্নত বিকল্পগুলি দেখুন
পতাকা বর্ণনা --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 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 প্রকল্পকে কনফিগার করে।
Android : IL2CPP ব্যবহার করে এমন আপনার Android অ্যাপগুলির জন্য, আপনার প্রতীক ফাইল আপলোড করতে Firebase CLI
crashlytics:symbols:upload
কমান্ডটি চালান।
আপনার অ্যাপ চালান। একবার আপনার অ্যাপ চালু হলে, ডিভাইসের লগটি দেখুন এবং
CrashlyticsTester
থেকে ব্যতিক্রমটি ট্রিগার হওয়ার জন্য অপেক্ষা করুন।iOS+ : এক্সকোডের নীচের ফলকে লগগুলি দেখুন।
অ্যান্ড্রয়েড : টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে লগগুলি দেখুন:
adb logcat
।
আপনার পরীক্ষা ক্র্যাশ দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।
আপনি যদি কনসোলটি রিফ্রেশ করে থাকেন এবং আপনি এখনও পাঁচ মিনিটের পরেও পরীক্ষা ক্র্যাশ দেখতে না পান, আপনার অ্যাপ ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং সক্ষম করুন ৷
আর এটাই! Crashlytics এখন ক্র্যাশের জন্য আপনার অ্যাপ নিরীক্ষণ করছে। আপনার সমস্ত রিপোর্ট এবং পরিসংখ্যান দেখতে এবং তদন্ত করতে Crashlytics ড্যাশবোর্ডে যান।
পরবর্তী পদক্ষেপ
- (প্রস্তাবিত) IL2CPP ব্যবহার করে এমন অ্যান্ড্রয়েড অ্যাপগুলির জন্য, GWP-ASan রিপোর্ট সংগ্রহ করে নেটিভ মেমরি ত্রুটির কারণে সৃষ্ট ক্র্যাশ ডিবাগিং করতে সহায়তা পান৷ এই মেমরি-সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপের মধ্যে মেমরি দুর্নীতির সাথে যুক্ত হতে পারে, যা অ্যাপ নিরাপত্তা দুর্বলতার প্রধান কারণ। এই ডিবাগিং বৈশিষ্ট্যের সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপটি ইউনিটির জন্য সর্বশেষ Crashlytics SDK ব্যবহার করছে (v10.7.0+) এবং GWP-ASan স্পষ্টভাবে সক্ষম করা আছে ( আপনার Android অ্যাপ ম্যানিফেস্ট পরিবর্তন করতে হবে)।
- অপ্ট-ইন রিপোর্টিং, লগ, কী, এবং অ-মারাত্মক ত্রুটির ট্র্যাকিং যোগ করে আপনার ক্র্যাশ রিপোর্ট সেটআপ কাস্টমাইজ করুন ।
- Google Play এর সাথে ইন্টিগ্রেট করুন যাতে আপনি Crashlytics ড্যাশবোর্ডে সরাসরি Google Play ট্র্যাকের মাধ্যমে আপনার Android অ্যাপের ক্র্যাশ রিপোর্ট ফিল্টার করতে পারেন। এটি আপনাকে নির্দিষ্ট বিল্ডগুলিতে আপনার ড্যাশবোর্ডকে আরও ভালভাবে ফোকাস করতে দেয়।