Unity-র জন্য Crashlytics ব্যবহার করা শুরু করা

প্ল্যাটফর্ম বেছে নিন: iOS+ Android Android NDK Flutter Unity


আপনার Unity প্রোজেক্টে কীভাবে Firebase Crashlytics ব্যবহার শুরু করবেন তা এই নির্দেশিকায় বর্ণনা করা হয়েছে।

আপনার অ্যাপে Firebase Crashlytics SDK সেট-আপ করার পরে, আপনি Firebase কনসোলে ক্র্যাশ সংক্রান্ত বিস্তারিত রিপোর্ট পেতে পারেন।

Crashlytics সেট-আপ করার জন্য Firebase কনসোল এবং আপনার IDE (যেমন, Firebase কনফিগারেশন ফাইল এবং Crashlytics SDK যোগ করা) দুটিতেই টাস্ক প্রয়োজন। সেট-আপ সম্পূর্ণ করতে, Firebase-এ আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠাতে আপনাকে একটি টেস্ট ক্র্যাশ ফোর্স করতে হবে।

শুরু করার আগে

  1. আপনি যদি আগে থেকে না করে থাকেন, তাহলে আপনার Unity প্রোজেক্টে Firebase যোগ করুন। আপনার কাছে Unity প্রোজেক্ট না থাকলে, আপনি একটি স্যাম্পেল অ্যাপ ডাউনলোড করতে পারবেন।

  2. সাজেস্ট করা: ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্টের আগে ব্যবহারকারীর অ্যাকশন বুঝতে অটোমেটিক ব্রেডক্রাম্ব লগ পেতে, আপনার Firebase প্রোজেক্টে Google Analytics চালু করতে হবে।

    • আপনি নতুন Firebase প্রোজেক্ট তৈরি করলে, প্রোজেক্ট তৈরির ওয়ার্কফ্লো চলাকালীন Google Analytics চালু করুন।

    • আপনি যদি আগে থেকে থাকা এমন কোনও Firebase প্রোজেক্ট ব্যবহার করেন যেখানে Google Analytics চালু করা নেই, তাহলে আপনি Firebase কনসোলের সেটিংস > ইন্টিগ্রেশন পৃষ্ঠা থেকে এটি চালু করতে পারবেন।

ধাপ ১: আপনার অ্যাপে Crashlytics SDK যোগ করুন

মনে রাখবেন, আপনার Firebase প্রোজেক্টের সাথে Unity প্রোজেক্ট রেজিস্টার করার সময়, আপনি হয়তো আগেই Firebase Unity SDK ডাউনলোড করে নিয়েছেন এবং নিম্নলিখিত ধাপে বর্ণনা করা প্যাকেজ যোগ করেছেন।

  1. Firebase Unity SDK ডাউনলোড করুন, তারপর সুবিধাজনক কোনও জায়গায় SDK আনজিপ করুন। Firebase Unity SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়।

  2. আপনার খোলা Unity প্রোজেক্টে, অ্যাসেট > প্যাকেজ ইমপোর্ট করুন > কাস্টম প্যাকেজ বিকল্পে নেভিগেট করুন।

  3. আনজিপ করা SDK থেকে, Crashlytics SDK (FirebaseCrashlytics.unitypackage) ইমপোর্ট করার জন্য বেছে নিন।

    ব্রেডক্রাম্ব লগ ফিচারের সুবিধা নিতে, আপনার অ্যাপে Google Analytics-এর জন্য Firebase SDK যোগ করুন (FirebaseAnalytics.unitypackage)। আপনার Firebase প্রোজেক্টে Google Analytics চালু করা আছে কিনা তা নিশ্চিত করুন।

  4. Unity প্যাকেজ ইমপোর্ট করুন উইন্ডোতে, ইমপোর্ট করুন বিকল্পে ক্লিক করুন।

ধাপ ২: Crashlytics শুরু করুন

  1. নতুন C# স্ক্রিপ্ট তৈরি করুন, তারপর দৃশ্যের মধ্যে GameObject-এ এটি যোগ করুন।

    1. আপনার প্রথম দৃশ্য খুলুন, তারপর CrashlyticsInitializer নামে একটি খালি GameObject তৈরি করুন।

    2. নতুন অবজেক্টের জন্য ইন্সপেক্টর-এ কম্পোনেন্ট যোগ করুন বিকল্পে ক্লিক করুন।

    3. CrashlyticsInitializer অবজেক্টে যোগ করতে আপনার CrashlyticsInit স্ক্রিপ্ট বেছে নিন।

  2. স্ক্রিপ্টের 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-এর জন্য) সিম্বল আপলোড করার জন্য সেট-আপ করা

এই ধাপটি শুধুমাত্র IL2CPP ব্যবহার করে এমন Android অ্যাপের জন্য প্রয়োজন।

  • Unity-র Mono স্ক্রিপ্টিং ব্যাকএন্ড ব্যবহার করে এমন Android অ্যাপের জন্য, এইসব ধাপের প্রয়োজন নেই।

  • Apple প্ল্যাটফর্ম অ্যাপের জন্য, এই ধাপগুলি প্রয়োজন নেই কারণ Firebase Unity এডিটর প্লাগ-ইন অটোমেটিক আপনার Xcode প্রোজেক্ট কনফিগার করে যাতে সিম্বল আপলোড করা যায়।

Unity (v8.6.1+)-এর জন্য Crashlytics SDK-তে অটোমেটিক NDK ক্র্যাশ রিপোর্টিং অন্তর্ভুক্ত থাকে, যা Crashlytics-কে Android-এ Unity IL2CPP ক্র্যাশ অটোমেটিক রিপোর্ট করার অনুমতি দেয়। তবে, Crashlytics ড্যাশবোর্ডে নেটিভ লাইব্রেরি ক্র্যাশের জন্য সিম্বলিক স্ট্যাক ট্রেস দেখতে, আপনাকে অবশ্যই Firebase CLI ব্যবহার করে বিল্ড করার সময় সিম্বল তথ্য আপলোড করতে হবে।

সিম্বল আপলোড করার জন্য সেট-আপ করতে, Firebase CLI ইনস্টল করুন সংক্রান্ত নির্দেশাবলী অনুসরণ করুন।

আপনি যদি আগে থেকেই CLI ইনস্টল করে থাকেন, তাহলে লেটেস্ট ভার্সনে আপডেট করতে ভুলবেন না।

ধাপ ৪: আপনার প্রোজেক্ট তৈরি করুন এবং সিম্বল আপলোড করুন

iOS+ (Apple প্ল্যাটফর্ম)

  1. বিল্ড সেটিংস ডায়ালগ থেকে, আপনার প্রোজেক্ট Xcode ওয়ার্কস্পেসে এক্সপোর্ট করুন।

  2. আপনার অ্যাপ তৈরি করুন।

    Apple প্ল্যাটফর্মের জন্য, Firebase Unity Editor প্লাগ-ইন অটোমেটিক আপনার Xcode প্রোজেক্ট কনফিগার করে যাতে প্রতিটি বিল্ডের জন্য Firebase সার্ভারে Crashlytics-এর সাথে মানানসই সিম্বল ফাইল জেনারেট ও আপলোড করা যায়।

Android

  1. বিল্ড সেটিংস ডায়ালগ থেকে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

    • আপনার প্রোজেক্ট তৈরি করতে Android Studio প্রোজেক্টে এক্সপোর্ট করুন; অথবা

    • Unity Editor থেকে সরাসরি আপনার APK তৈরি করুন।
      বিল্ড করার আগে, বিল্ড সেটিংস ডায়ালগে symbols.zip তৈরি করুন চেকবক্সটি চেক করা আছে কিনা তা দেখে নিন।

  2. আপনার বিল্ড সম্পূর্ণ হয়ে গেলে, Crashlytics-এর সাথে মানানসই সিম্বল ফাইল তৈরি করুন এবং নিম্নলিখিত Firebase CLI কমান্ড রান করে 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: CLI দ্বারা জেনারেট করা সিম্বল ফাইলের পাথ

      • Android Studio প্রোজেক্টে এক্সপোর্ট করা হয়েছে — 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 সিম্বল ফাইল জেনারেটর ব্যবহার করে

    ব্যবহারের জন্য সাজেস্ট করা হয় না। আমরা ডিফল্ট Breakpad সিম্বল ফাইল জেনারেটর ব্যবহার করার সাজেশন দিই।

    --generator=breakpad

    Breakpad সিম্বল ফাইল জেনারেটর ব্যবহার করে

    মনে রাখবেন, সিম্বল ফাইল জেনারেশনের জন্য ডিফল্ট হল Breakpad। আপনি যদি নিজের বিল্ড কনফিগারেশনে symbolGenerator { csym() } যোগ করে থাকেন এবং এর পরিবর্তে Breakpad ব্যবহার করার জন্য এটিকে ওভাররাইড করতে চান, তাহলে শুধুমাত্র এই ফ্ল্যাগ ব্যবহার করুন।

    --dry-run

    সিম্বল ফাইল তৈরি করে কিন্তু সেগুলি আপলোড করে না

    আপনি যদি পাঠানো ফাইলের কন্টেন্ট পরীক্ষা করতে চান, তাহলে এই ফ্ল্যাগটি উপযোগী।

    --debug ডিবাগিং সংক্রান্ত অতিরিক্ত তথ্য প্রদান করে

ধাপ ৫: সেট-আপ সম্পূর্ণ করতে টেস্ট ক্র্যাশ জোর করে বন্ধ করুন

Crashlytics সেট-আপ করা সম্পূর্ণ করতে এবং Firebase কনসোলের Crashlytics ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে একটি টেস্ট ক্র্যাশ ফোর্স করতে হবে।

  1. আগে থেকে থাকা 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");
            }
        }
    }
  2. আপনার অ্যাপ তৈরি করুন এবং তৈরি করা হয়ে গেলে সিম্বল সংক্রান্ত তথ্য আপলোড করুন।

    • iOS+: Firebase Unity Editor প্লাগ-ইন আপনার সিম্বল ফাইল আপলোড করার জন্য Xcode প্রোজেক্ট অটোমেটিক কনফিগার করে।

    • Android: IL2CPP ব্যবহার করে এমন Android অ্যাপের জন্য, Firebase CLI crashlytics:symbols:upload কমান্ড রান করে আপনার সিম্বল ফাইল আপলোড করুন।

  3. আপনার অ্যাপ চালান। আপনার অ্যাপ চালু হয়ে গেলে, ডিভাইস লগ দেখুন এবং CrashlyticsTester থেকে ব্যতিক্রম ট্রিগার হওয়ার জন্য অপেক্ষা করুন।

    • iOS+: Xcode-এর নিচের প্যানে লগ দেখুন।

    • Android: টার্মিনালে নিম্নলিখিত কমান্ড রান করে লগ দেখুন: adb logcat.

  4. Firebase কনসোলে, DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে গিয়ে আপনার টেস্ট ক্র্যাশ রিপোর্ট চেক করুন।

    আপনি কনসোল রিফ্রেশ করার পরেও পাঁচ মিনিট পরে টেস্ট ক্র্যাশ দেখতে না পেলে, আপনার অ্যাপ ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং চালু করুন।


আর এইটুকুই! Crashlytics এখন আপনার অ্যাপ ক্র্যাশ করছে কিনা তা মনিটর করছে। আপনার সব রিপোর্ট ও পরিসংখ্যান দেখতে ও খতিয়ে দেখতে Crashlytics ড্যাশবোর্ড দেখুন।

পরবর্তী ধাপ