Firebase Crashlytics দিয়ে শুরু করুন

এই কুইকস্টার্ট বর্ণনা করে কিভাবে Firebase Crashlytics SDK এর সাথে আপনার অ্যাপে Firebase Crashlytics সেট আপ করবেন যাতে আপনি Firebase কনসোলে ব্যাপক ক্র্যাশ রিপোর্ট পেতে পারেন।

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

তুমি শুরু করার আগে

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

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

    • যদি আপনার বিদ্যমান ফায়ারবেস প্রকল্পে Google Analytics সক্ষম না থাকে, তাহলে আপনি আপনার ইন্টিগ্রেশন ট্যাব থেকে Google Analytics সক্ষম করতে পারেন > Firebase কনসোলে প্রকল্প সেটিংস

    • আপনি যদি একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করেন, তাহলে প্রোজেক্ট তৈরির ওয়ার্কফ্লো চলাকালীন Google Analytics সক্ষম করুন।

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

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

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

  2. আপনার ওপেন ইউনিটি প্রকল্পে, সম্পদ > আমদানি প্যাকেজ > কাস্টম প্যাকেজে নেভিগেট করুন।

  3. আনজিপ করা SDK থেকে, Crashlytics SDK ( FirebaseCrashlytics.unitypackage ) আমদানি করতে নির্বাচন করুন।

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

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

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

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

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

    2. নতুন অবজেক্টের জন্য ইন্সপেক্টরে উপাদান যোগ করুন ক্লিক করুন।

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

  2. স্ক্রিপ্টের 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 : (শুধুমাত্র অ্যান্ড্রয়েড) প্রতীক আপলোড করার জন্য সেট আপ করুন

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

  • ইউনিটির মোনো স্ক্রিপ্টিং ব্যাকএন্ড ব্যবহার করে এমন অ্যান্ড্রয়েড অ্যাপগুলির জন্য, এই পদক্ষেপগুলির প্রয়োজন নেই৷

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

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

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

আপনি যদি ইতিমধ্যেই CLI ইনস্টল করে থাকেন, তাহলে নিশ্চিত করুন যে এটির সর্বশেষ সংস্করণে আপডেট করুন

ধাপ 4 : আপনার প্রকল্প তৈরি করুন এবং প্রতীক আপলোড করুন

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

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

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

    Apple প্ল্যাটফর্মের জন্য, Firebase ইউনিটি এডিটর প্লাগইন স্বয়ংক্রিয়ভাবে প্রতিটি বিল্ডের জন্য Firebase সার্ভারে একটি Crashlytics-সামঞ্জস্যপূর্ণ প্রতীক ফাইল তৈরি এবং আপলোড করতে আপনার Xcode প্রকল্পকে কনফিগার করে।

অ্যান্ড্রয়েড

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

    • আপনার প্রকল্প তৈরি করতে একটি Android স্টুডিও প্রকল্পে রপ্তানি করুন; বা

    • ইউনিটি এডিটর থেকে সরাসরি আপনার APK তৈরি করুন।
      বিল্ড করার আগে, বিল্ড সেটিংস ডায়ালগে চিহ্ন তৈরি করুন.জিপ- এর চেকবক্সটি চেক করা আছে তা নিশ্চিত করুন।

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

    • 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 ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে একটি পরীক্ষা ক্র্যাশ করতে বাধ্য করতে হবে।

  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+ : ফায়ারবেস ইউনিটি এডিটর প্লাগইন স্বয়ংক্রিয়ভাবে আপনার প্রতীক ফাইল আপলোড করতে আপনার Xcode প্রকল্পকে কনফিগার করে।

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

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

    • iOS+ : এক্সকোডের নীচের ফলকে লগগুলি দেখুন।

    • অ্যান্ড্রয়েড : টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে লগগুলি দেখুন: adb logcat

  4. আপনার পরীক্ষা ক্র্যাশ দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।

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


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

পরবর্তী পদক্ষেপ

  • (প্রস্তাবিত) IL2CPP ব্যবহার করে এমন অ্যান্ড্রয়েড অ্যাপগুলির জন্য, GWP-ASan রিপোর্ট সংগ্রহ করে নেটিভ মেমরি ত্রুটির কারণে সৃষ্ট ক্র্যাশ ডিবাগিং করতে সহায়তা পান৷ এই মেমরি-সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপের মধ্যে মেমরি দুর্নীতির সাথে যুক্ত হতে পারে, যা অ্যাপ নিরাপত্তা দুর্বলতার প্রধান কারণ। এই ডিবাগিং বৈশিষ্ট্যের সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপটি ইউনিটির জন্য সর্বশেষ Crashlytics SDK ব্যবহার করছে (v10.7.0+) এবং GWP-ASan স্পষ্টভাবে সক্ষম করা আছে ( আপনার Android অ্যাপ ম্যানিফেস্ট পরিবর্তন করতে হবে)।
  • Google Play-এর সাথে ইন্টিগ্রেট করুন যাতে আপনি Crashlytics ড্যাশবোর্ডে সরাসরি Google Play ট্র্যাকের মাধ্যমে আপনার Android অ্যাপের ক্র্যাশ রিপোর্ট ফিল্টার করতে পারেন। এটি আপনাকে নির্দিষ্ট বিল্ডগুলিতে আপনার ড্যাশবোর্ডকে আরও ভালভাবে ফোকাস করতে দেয়।