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


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

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

قبل البدء

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

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

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

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

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

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

يمكنك استخدام "مدير حزم Swift" لتثبيت اعتماديات 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. من قائمة الاستهدافات، اختَر هدف الإصدار الرئيسي.

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

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

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

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

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

      تأكَّد من أنّ مرحلة تشغيل النص البرمجي الجديدة هذه هي آخر إصدار لمشروعك. المرحلة؛ وبخلاف ذلك، لا يمكن لـ 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 لعرض جميع تقاريرك وإحصاءاتك والاطّلاع عليها.

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