بدء استخدام Firebase Crashlytics


يوضّح دليل البدء السريع هذا كيفية إعداد Firebase Crashlytics في تطبيقك باستخدام حزمة SDK لFirebase Crashlytics حتى تتمكّن من الحصول على تقارير كاملة عن تعطُّل التطبيق في وحدة تحكّم Firebase.

يتطلّب إعداد Crashlytics تنفيذ مهام في كلّ من وحدة تحكّم Firebase و IDE (مثل إضافة ملف إعدادات Firebase وحزمة تطوير البرامج (SDK)Crashlytics ). لإكمال عملية الإعداد، عليك فرض حدوث عطل اختباري لإرسال أول تقرير عطل إلى Firebase.

قبل البدء

  1. أضِف Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك. إذا لم يكن لديك تطبيق Apple، يمكنك تنزيل نموذج تطبيق.

  2. إجراء مقترَح: للحصول تلقائيًا على سجلّات مسار التنقل لفهم إجراءات المستخدم التي أدّت إلى حدوث تعذّر أو خطأ غير قاتل أو حدث ANR، عليك تفعيل Google Analytics في مشروعك على Firebase.

    • إذا لم يكن Google Analytics مفعّلاً في مشروعك الحالي على Firebase، يمكنك تفعيله من علامة التبويب عمليات الدمج ضمن > إعدادات المشروع في وحدة تحكُّم Firebase.

    • إذا كنت بصدد إنشاء مشروع جديد على Firebase، فعِّل Google Analytics أثناء سير عمل إنشاء المشروع.

    يُرجى العلم أنّ سجلّات "المسار الإجرائي" متاحة لجميع منصات Apple المتوافقة مع Crashlytics باستثناء watchOS.

الخطوة 1: إضافة حزمة تطوير البرامج (SDK) Crashlytics إلى تطبيقك

استخدِم أداة Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.

  1. في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى File > Add Packages (ملف > إضافة حِزم).
  2. أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase عندما يُطلب منك ذلك:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. اختَر مكتبة Crashlytics.
  5. للاستفادة من سجلّات مسار التنقّل، أضِف أيضًا حزمة تطوير البرامج (SDK) لمنصّة Google Analytics في تطبيقك. تأكَّد من تفعيل "إحصاءات Google" في مشروعك على Firebase.
  6. أضِف العلامة -ObjC إلى قسم رموز ربط أخرى في إعدادات الإنشاء الخاصة بالهدف.
  7. (نظام التشغيل macOS فقط) في Info.plist، أضِف المفتاح NSApplicationCrashOnExceptions واضبطه على YES.
  8. عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ ملفاتك المضمّنة وتنزيلها في الخلفية.

بعد ذلك، عليك ضبط وحدة Firebase:

  1. استورِد وحدة Firebase في بنية App أو UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. اضبط مثيل FirebaseApp مشتركًا، عادةً باستخدام طريقة application(_:didFinishLaunchingWithOptions:) لمُفوِّض تطبيقك:

    Swift

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

    Objective-C

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

الخطوة 2: إعداد Xcode لتحميل ملفات dSYM تلقائيًا

لإنشاء تقارير أعطال يمكن لشخص عادي قراءتها، يحتاج Crashlytics إلى ملفات رمز تصحيح الأخطاء (dSYM) في مشروعك. توضِّح الخطوات التالية كيفية ضبط Xcode لإنشاء ملفات dSYM تلقائيًا ومعالجتها وتحميل الملفات عند إنشاء تطبيقك.

  1. افتح مساحة عمل Xcode لمشروعك، ثم اختَر ملف المشروع في المستكشف الأيمن.

  2. من قائمة الاستهدافات، اختَر هدف الإصدار الرئيسي.

  3. انقر على علامة التبويب Build Settings (إعدادات الإصدار)، ثم أكمِل الخطوات التالية حتى يتمكن Xcode من إنشاء dSYM للإصدارات التي تستخدمها.

    1. انقر على الكل، ثم ابحث عن debug information format.

    2. اضبط تنسيق معلومات تصحيح الأخطاء على DWARF with dSYM File لجميع أنواع الإصدارات.

  4. انقر على علامة التبويب مراحل الإنشاء، ثم أكمِل الخطوات التالية لكي تتمكّن IDE من معالجة ملفات dSYM وتحميل الملفات.

    1. انقر على > مرحلة جديدة لتشغيل النص البرمجي.

      تأكَّد من أنّ مرحلة Run Script الجديدة هذه هي مرحلة الإنشاء المرحلة الأخيرة لمشروعك، وإلا لن تتمكّن أداة Crashlytics من معالجة ملفات dSYM بشكل صحيح.

    2. وسِّع القسم الجديد تشغيل النص البرمجي.

    3. في حقل النص البرمجي (الموجود ضمن التصنيف Shell)، أضِف النص البرمجي التالي للتشغيل.

      يعالج هذا النص البرمجي ملفات 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)

للحصول على معلومات أكثر تفصيلاً حول ملفات dSYM وCrashlytics (بما في ذلك كيفية تحميل ملفات dSYM يدويًا)، انتقِل إلى الحصول على تقارير الأعطال التي تمت إزالة تشويشها.

الخطوة 3: فرض عطل في الاختبار لإنهاء عملية الإعداد

لإكمال عملية إعداد Crashlytics والاطّلاع على البيانات الأولية في لوحة بيانات Crashlytics في وحدة تحكّم Firebase، عليك فرض تعطُّل اختباري.

  1. أضِف رمزًا إلى تطبيقك يمكنك استخدامه لفرض حدوث عطل تجريبي.

    يمكنك استخدام الرمز التالي لإضافة زر إلى تطبيقك يؤدي إلى تعطُّله عند الضغط عليه. يظهر الزرّ بعنوان "اختبار الأعطال".

    واجهة المستخدم

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

    واجهة UIKit

    Swift

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

    Objective-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. انقر على إنشاء المخطّط الحالي ثم تشغيله لإنشاء تطبيقك على جهاز اختبار أو محاكي.

    2. انتظِر إلى أن يصبح تطبيقك قيد التشغيل، ثم انقر على إيقاف تشغيل المخطّط أو الإجراء لإغلاق النسخة الأولية من تطبيقك. تتضمّن هذه النسخة الأولية برنامج تصحيح الأخطاء الذي يتداخل مع Crashlytics.

  3. يمكنك فرض حدوث عطل في الاختبار لإرسال أول تقرير عن عطل في تطبيقك:

    1. افتح تطبيقك من الشاشة الرئيسية للجهاز التجريبي أو المحاكي.

    2. في تطبيقك، اضغط على زر "اختبار التعطّل" الذي أضفته باستخدام الرمز أعلاه.

    3. بعد تعطُّل تطبيقك، شغِّله مرة أخرى من Xcode حتى يتمكّن تطبيقك من إرسال تقرير الأعطال إلى Firebase.

  4. انتقِل إلى لوحة بيانات Crashlytics في وحدة تحكّم Firebase للاطّلاع على الأعطال في الاختبار.

    إذا أعدنا تحميل وحدة التحكّم ولم يظهر لنا تعذُّر الاختبار بعد مرور خمس دقائق،فعِّل تسجيل تصحيح الأخطاء للاطّلاع على ما إذا كان تطبيقك يرسل تقارير الأعطال.


هذا كل ما في الأمر. تتحقّق Crashlytics الآن من تطبيقك بحثًا عن الأعطال. انتقِل إلى لوحة بيانات Crashlytics لعرض جميع التقارير والإحصاءات والاطّلاع عليها.

الخطوات التالية