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

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

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

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

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

  2. প্রস্তাবিত : ক্র্যাশ-মুক্ত ব্যবহারকারী, ব্রেডক্রাম্ব লগ এবং বেগ সতর্কতার মতো বৈশিষ্ট্যগুলি পেতে, আপনাকে আপনার Firebase প্রকল্পে Google Analytics সক্ষম করতে হবে৷

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

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

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

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

  1. Firebase Unity SDK ডাউনলোড করুন, তারপর সুবিধাজনক জায়গায় SDK আনজিপ করুন।

    ফায়ারবেস ইউনিটি SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়।

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

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

    আপনি অন্য কোনো সমর্থিত Firebase পণ্যও আমদানি করতে পারেন।

  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
    using Firebase;
    
    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;
    
                    // 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 ব্যবহার করে বিল্ড টাইমে প্রতীক তথ্য আপলোড করতে হবে।

প্রতীক আপলোড করার জন্য সেট আপ করার জন্য নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Firebase CLI ইনস্টল করতে নির্দেশাবলী অনুসরণ করুন।

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

  2. (শুধুমাত্র Android API স্তর 30+ ব্যবহার করা অ্যাপগুলির জন্য) পয়েন্টার ট্যাগিং অক্ষম করতে আপনার অ্যাপের AndroidManifest.xml টেমপ্লেট আপডেট করুন:

    1. অ্যান্ড্রয়েড প্লেয়ার সেটিংস > প্রকাশনা সেটিংস > বিল্ড > কাস্টম প্রধান ম্যানিফেস্টের জন্য বক্সটি চেক করুন।

    2. Assets/Plugins/Android/AndroidManifest.xml এ অবস্থিত ম্যানিফেস্ট টেমপ্লেটটি খুলুন।

    3. অ্যাপ্লিকেশন ট্যাগে নিম্নলিখিত বৈশিষ্ট্য যোগ করুন: <application android:allowNativeHeapPointerTagging="false" ... />

ধাপ 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 non-fatal errors 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-এ ক্র্যাশ রিপোর্ট পাঠাতে পারে।

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

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


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

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

  • Google Play-এর সাথে ইন্টিগ্রেট করুন যাতে আপনি Crashlytics ড্যাশবোর্ডে সরাসরি Google Play ট্র্যাকের মাধ্যমে আপনার Android অ্যাপের ক্র্যাশ রিপোর্ট ফিল্টার করতে পারেন। এটি আপনাকে নির্দিষ্ট বিল্ডগুলিতে আপনার ড্যাশবোর্ডকে আরও ভালভাবে ফোকাস করতে দেয়।