ابدأ مع Firebase Crashlytics

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

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

قبل ان تبدأ

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

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

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

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

    لاحظ أن سجلات التنقل متاحة لجميع منصات Apple التي يدعمها Crashlytics باستثناء watchOS.

الخطوة 1 : أضف Crashlytics SDK إلى تطبيقك

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

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

بعد ذلك، قم بتكوين وحدة Firebase:

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

    سويفت

    import Firebase

    ج موضوعية

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

    سويفت

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

    ج موضوعية

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

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

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

  1. افتح مساحة عمل Xcode الخاصة بمشروعك، ثم حدد ملف المشروع الخاص به في المتصفح الأيسر.

  2. من قائمة TARGETS ، حدد هدف البناء الرئيسي الخاص بك.

  3. انقر فوق علامة التبويب إعدادات البناء ، ثم أكمل الخطوات التالية حتى يقوم Xcode بإنتاج dSYMs للإصدارات الخاصة بك.

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

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

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

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

      تأكد من أن مرحلة تشغيل البرنامج النصي الجديدة هذه هي مرحلة البناء الأخيرة لمشروعك؛ وإلا فلن تتمكن Crashlytics من معالجة dSYMs بشكل صحيح.

    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

    سويفت

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

    ج موضوعية

    #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. في تطبيقك، اضغط على زر "اختبار الأعطال" الذي أضفته باستخدام الكود أعلاه.

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

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

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


وهذا كل شيء! تقوم Crashlytics الآن بمراقبة تطبيقك بحثًا عن الأعطال. قم بزيارة لوحة تحكم Crashlytics لعرض جميع التقارير والإحصائيات الخاصة بك والتحقيق فيها.

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