بدء استخدام 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.Google Analytics

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

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

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

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

  1. في Xcode، مع فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم.
  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. من قائمة TARGETS (الاستهدافات)، اختَر استهداف الإنشاء الرئيسي.

  3. انقر على علامة التبويب إعدادات الإنشاء، ثم أكمِل الخطوات التالية لكي يُنشئ IDE dSYMs لعمليات الإنشاء.

    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. أضِف رمزًا إلى تطبيقك يمكنك استخدامه لإجبار الاختبار على تعطُّل.

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

    SwiftUI

    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 لعرض جميع تقاريرك وإحصاءاتك والاطّلاع عليها.

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