Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

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

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

قبل از اینکه شروع کنی

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

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

    همه پلتفرم های اپل که توسط Crashlytics پشتیبانی می شوند (به جز watchOS) می توانند از این ویژگی های Google Analytics استفاده کنند. توجه داشته باشید که برای برنامه‌های macOS و tvOS به SDK v8.9.0+ نیاز دارید.

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

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

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

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

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. کتابخانه Crashlytics را انتخاب کنید.
  5. برای تجربه بهینه با Crashlytics، توصیه می‌کنیم Google Analytics را در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید. شما می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
  6. پس از اتمام، 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 برای همه انواع ساخت خود روی DWARF تنظیم کنید.

  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 ، مسیرهای مکان فایل های زیر را اضافه کنید:

      • مکان فایل های dSYM پروژه شما:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        ارائه مکان فایل‌های dSYM پروژه شما، Crashlytics را قادر می‌سازد تا dSYM‌ها را برای برنامه‌های بزرگ سریع‌تر پردازش کند.

      • محل فایل Info.plist ساخته شده پروژه شما:

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

        ارائه مکان فایل Info.plist ساخته شده پروژه شما، Crashlytics را قادر می سازد تا یک نسخه برنامه را با dSYM ها مرتبط کند.

برای اطلاعات دقیق‌تر درباره فایل‌های 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 بسازید و اجرا کنید.

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

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

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

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

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

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

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

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


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

مراحل بعدی