با Firebase Crashlytics شروع کنید


این شروع سریع نحوه راه‌اندازی Firebase Crashlytics را در برنامه خود با Firebase Crashlytics SDK توضیح می‌دهد تا بتوانید گزارش‌های خرابی جامع را در کنسول Firebase دریافت کنید.

راه‌اندازی Crashlytics به وظایفی هم در کنسول Firebase و هم در IDE شما نیاز دارد (مانند افزودن یک فایل پیکربندی Firebase و Crashlytics SDK). برای تکمیل راه‌اندازی، باید یک خرابی آزمایشی را مجبور کنید تا اولین گزارش خرابی خود را به Firebase ارسال کنید.

قبل از شروع

  1. اگر قبلاً این کار را نکرده اید، Firebase را به پروژه اپل خود اضافه کنید . اگر برنامه اپل ندارید، می توانید یک برنامه نمونه دانلود کنید.

  2. توصیه می‌شود : برای دریافت خودکار گزارش‌های خرده نان برای درک اقدامات کاربر که منجر به خرابی، رویداد غیرمرگبار یا ANR می‌شود، باید Google Analytics در پروژه Firebase خود فعال کنید.

    • اگر پروژه Firebase موجود شما Google Analytics فعال نکرده است، می توانید Google Analytics از برگه Integrations فعال کنید. > تنظیمات پروژه در کنسول Firebase .

    • اگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics در جریان کار ایجاد پروژه فعال کنید.

    توجه داشته باشید که گزارش‌های سوخاری برای همه پلتفرم‌های اپل که توسط Crashlytics پشتیبانی می‌شوند به جز watchOS در دسترس هستند.

مرحله 1 : Crashlytics SDK را به برنامه خود اضافه کنید

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Crashlytics را انتخاب کنید.
  5. برای بهره‌مندی از گزارش‌های خرده نان ، Firebase SDK برای Google Analytics را نیز به برنامه خود اضافه کنید. مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است .
  6. پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
  7. (فقط macOS) در Info.plist خود، کلید NSApplicationCrashOnExceptions را اضافه کنید و آن را روی YES تنظیم کنید.
  8. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.

سپس ماژول Firebase را پیکربندی کنید:

  1. ماژول Firebase را در ساختار App یا UIApplicationDelegate خود وارد کنید:

    سویفت

    import Firebase

    هدف-C

    @import Firebase;
  2. یک نمونه اشتراک‌گذاری شده FirebaseApp معمولاً در روش برنامه نماینده برنامه application(_:didFinishLaunchingWithOptions:) پیکربندی کنید:

    سویفت

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

    هدف-C

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

مرحله 2 : Xcode را برای آپلود خودکار فایل‌های dSYM تنظیم کنید

برای تولید گزارش‌های خرابی قابل خواندن توسط انسان، Crashlytics به فایل‌های نماد اشکال‌زدایی (dSYM) پروژه شما نیاز دارد. مراحل زیر نحوه پیکربندی Xcode را برای تولید خودکار dSYM ها، پردازش آنها و آپلود فایل ها هر زمان که برنامه خود را می سازید، شرح می دهد.

  1. فضای کاری Xcode پروژه خود را باز کنید، سپس فایل پروژه آن را در ناوبری سمت چپ انتخاب کنید.

  2. از لیست TARGETS ، هدف ساخت اصلی خود را انتخاب کنید.

  3. روی تب Build Settings کلیک کنید، سپس مراحل زیر را کامل کنید تا Xcode dSYM را برای بیلدهای شما تولید کند.

    1. روی همه کلیک کنید، سپس debug information format را جستجو کنید.

    2. فرمت اطلاعات اشکال زدایی را DWARF with dSYM File تنظیم کنید.

  4. روی تب Build Phases کلیک کنید، سپس مراحل زیر را انجام دهید تا Xcode بتواند dSYM های شما را پردازش کرده و فایل ها را آپلود کند.

    1. روی > مرحله اجرای جدید اسکریپت کلیک کنید.

      مطمئن شوید که این مرحله Run Script جدید آخرین مرحله ساخت پروژه شما است. در غیر این صورت، Crashlytics نمی تواند dSYM ها را به درستی پردازش کند.

    2. بخش Run Script جدید را باز کنید.

    3. در قسمت اسکریپت (که در زیر برچسب Shell قرار دارد)، اسکریپت اجرای زیر را اضافه کنید.

      این اسکریپت فایل های dSYM پروژه شما را پردازش می کند و فایل ها را در Crashlytics آپلود می کند.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. در بخش Input Files ، مسیرهای مکان فایل های زیر را اضافه کنید:

      ${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)

برای اطلاعات دقیق‌تر درباره فایل‌های dSYM و Crashlytics (از جمله نحوه آپلود دستی فایل‌های dSYM)، از دریافت گزارش‌های خرابی deobfuscated دیدن کنید.

مرحله 3 : یک خرابی آزمایشی را مجبور کنید تا راه‌اندازی تمام شود

برای تکمیل راه‌اندازی Crashlytics و مشاهده داده‌های اولیه در داشبورد Crashlytics کنسول Firebase ، باید یک خرابی آزمایشی را اجباری کنید.

  1. کدی را به برنامه خود اضافه کنید که می توانید از آن برای اجبار تست خرابی استفاده کنید.

    می توانید از کد زیر برای اضافه کردن دکمه ای به برنامه خود استفاده کنید که با فشردن آن باعث خرابی می شود. این دکمه دارای برچسب "تست تصادف" است.

    SwiftUI

    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]
      }
    }

    هدف-C

    #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. برنامه خود را در Xcode بسازید و اجرا کنید که اشکال زدای Xcode قطع شده است.

    1. روی Build کلیک کنید و سپس طرح فعلی را اجرا کنید تا برنامه خود را روی یک دستگاه آزمایشی یا شبیه ساز بسازید.

    2. صبر کنید تا برنامه شما اجرا شود، سپس روی اجرای طرح یا اقدام کلیک کنید تا نمونه اولیه برنامه شما بسته شود. این نمونه اولیه شامل اشکال زدایی است که با Crashlytics تداخل دارد.

  3. برای ارسال اولین گزارش خرابی برنامه خود، خرابی آزمایشی را اجباری کنید:

    1. برنامه خود را از صفحه اصلی دستگاه آزمایشی یا شبیه ساز خود باز کنید.

    2. در برنامه خود، دکمه «Test Crash» را که با استفاده از کد بالا اضافه کردید، فشار دهید.

    3. پس از خراب شدن برنامه، آن را دوباره از Xcode اجرا کنید تا برنامه شما بتواند گزارش خرابی را به Firebase ارسال کند.

  4. برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.

    اگر کنسول را به‌روزرسانی کرده‌اید و بعد از پنج دقیقه هنوز خرابی آزمایشی را نمی‌بینید، ثبت اشکال‌زدایی را فعال کنید تا ببینید آیا برنامه شما گزارش‌های خرابی را ارسال می‌کند یا خیر.


و بس! Crashlytics اکنون برنامه شما را از نظر خرابی زیر نظر دارد. از داشبورد Crashlytics دیدن کنید تا همه گزارش ها و آمار خود را مشاهده و بررسی کنید.

مراحل بعدی