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


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

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

শুরু করার আগে

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

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

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

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

    মনে রাখবেন যে ব্রেডক্রাম্ব লগগুলি watchOS ছাড়া Crashlytics দ্বারা সমর্থিত সমস্ত Apple প্ল্যাটফর্মের জন্য উপলব্ধ।

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

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, File > Add Packages- এ নেভিগেট করুন।
  2. অনুরোধ করা হলে, Firebase Apple platforms SDK সংগ্রহস্থল যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Crashlytics লাইব্রেরিটি নির্বাচন করুন।
  5. ব্রেডক্রাম্ব লগের সুবিধা নিতে, আপনার অ্যাপে Google Analytics জন্য ফায়ারবেস SDK যোগ করুন। নিশ্চিত করুন যে আপনার ফায়ারবেস প্রকল্পে গুগল অ্যানালিটিক্স সক্ষম আছে
  6. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
  7. (শুধুমাত্র macOS) আপনার Info.plist এ, NSApplicationCrashOnExceptions কী যোগ করুন এবং এটি YES এ সেট করুন।
  8. শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।

এরপর, Firebase মডিউলটি কনফিগার করুন:

  1. আপনার App স্ট্রাক্ট অথবা UIApplicationDelegate এ Firebase মডিউলটি আমদানি করুন:

    সুইফট

    import Firebase

    অবজেক্টিভ-সি

    @import Firebase;
  2. সাধারণত আপনার অ্যাপ ডেলিগেটের application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে একটি FirebaseApp শেয়ার্ড ইনস্ট্যান্স কনফিগার করুন:

    সুইফট

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()

    অবজেক্টিভ-সি

    // Use the Firebase library to configure APIs.
    [FIRApp configure];

ধাপ ২ : dSYM ফাইলগুলি স্বয়ংক্রিয়ভাবে আপলোড করার জন্য Xcode সেট আপ করুন

মানুষের পঠনযোগ্য ক্র্যাশ রিপোর্ট তৈরি করতে, Crashlytics আপনার প্রোজেক্টের ডিবাগ প্রতীক (dSYM) ফাইলের প্রয়োজন। নিম্নলিখিত ধাপগুলি বর্ণনা করে যে কীভাবে Xcode কনফিগার করবেন যাতে আপনার dSYM স্বয়ংক্রিয়ভাবে তৈরি হয়, সেগুলি প্রক্রিয়া করা যায় এবং যখনই আপনি আপনার অ্যাপ তৈরি করেন তখন ফাইলগুলি আপলোড করা যায়।

  1. আপনার প্রোজেক্টের Xcode ওয়ার্কস্পেস খুলুন, তারপর বাম নেভিগেটরে এর প্রোজেক্ট ফাইলটি নির্বাচন করুন।

  2. লক্ষ্য তালিকা থেকে, আপনার প্রধান বিল্ড লক্ষ্য নির্বাচন করুন।

  3. বিল্ড সেটিংস ট্যাবে ক্লিক করুন, তারপর নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন যাতে Xcode আপনার বিল্ডগুলির জন্য dSYM তৈরি করে।

    1. All এ ক্লিক করুন, তারপর debug information format অনুসন্ধান করুন।

    2. আপনার সকল ধরণের বিল্ডের জন্য DWARF with dSYM File ডিবাগ ইনফরমেশন ফর্ম্যাটকে DWARF এ সেট করুন।

  4. বিল্ড ফেজেস ট্যাবে ক্লিক করুন, তারপর নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন যাতে Xcode আপনার dSYM গুলি প্রক্রিয়া করতে পারে এবং ফাইলগুলি আপলোড করতে পারে।

    1. > নতুন রান স্ক্রিপ্ট ফেজ ক্লিক করুন।

      নিশ্চিত করুন যে এই নতুন রান স্ক্রিপ্ট ফেজটি আপনার প্রোজেক্টের শেষ বিল্ড ফেজ; অন্যথায়, Crashlytics সঠিকভাবে dSYM প্রক্রিয়া করতে পারবে না।

    2. নতুন রান স্ক্রিপ্ট বিভাগটি প্রসারিত করুন।

    3. স্ক্রিপ্ট ক্ষেত্রে ( শেল লেবেলের নীচে অবস্থিত), নিম্নলিখিত রান স্ক্রিপ্টটি যুক্ত করুন।

      এই স্ক্রিপ্টটি আপনার প্রোজেক্টের dSYM ফাইলগুলি প্রক্রিয়া করে এবং ফাইলগুলিকে Crashlytics এ আপলোড করে।

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. ইনপুট ফাইল বিভাগে, নিম্নলিখিত ফাইলগুলির অবস্থানের জন্য পাথ যোগ করুন:

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
      $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
      $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
      যদি আপনার প্রোজেক্ট বিল্ড সেটিংসে ENABLE_USER_SCRIPT_SANDBOXING=YES এবং ENABLE_DEBUG_DYLIB=YES থাকে, তাহলে নিম্নলিখিতগুলি অন্তর্ভুক্ত করুন:
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

dSYM ফাইল এবং Crashlytics (dSYM ফাইলগুলি ম্যানুয়ালি আপলোড করার পদ্ধতি সহ) সম্পর্কে আরও বিস্তারিত তথ্যের জন্য, Get deobfuscated crash reports দেখুন।

Step 3 : Force a test crash to finish setup

To finish setting up Crashlytics and see initial data in the Crashlytics dashboard of the Firebase console, you need to force a test crash.

  1. Add code to your app that you can use to force a test crash.

    You can use the following code to add a button to your app that, when pressed, causes a crash. The button is labeled "Test Crash".

    সুইফটইউআই

    Button("Crash") {
      fatalError("Crash was triggered")
    }

    UIKit

    সুইফট

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }

    অবজেক্টিভ-সি

    #import "ViewController.h"
    
    @implementation ViewController(void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
     (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
  2. Build and run your app in Xcode with the Xcode debugger disconnected.

    1. Click Build and then run the current scheme to build your app on a test device or simulator.

    2. Wait until your app is running, then click Stop running the scheme or action to close the initial instance of your app. This initial instance included the debugger that interferes with Crashlytics .

  3. Force the test crash in order to send your app's first crash report:

    1. Open your app from the home screen of your test device or simulator.

    2. In your app, press the "Test Crash" button that you added using the code above.

    3. After your app crashes, run it again from Xcode so that your app can send the crash report to Firebase.

  4. Go to the Crashlytics dashboard of the Firebase console to see your test crash.

    If you've refreshed the console and you're still not seeing the test crash after five minutes, enable debug logging to see if your app is sending crash reports.


And that's it! Crashlytics is now monitoring your app for crashes. Visit the Crashlytics dashboard to view and investigate all your reports and statistics.

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