اختبار عملية تنفيذ Crashlytics (على منصات Apple)

اختيار المنصة: iOS+ Android Flutter Unity


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

فرض حدوث عطل لاختبار عملية التنفيذ

  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. في وحدة تحكّم Firebase، انتقِل إلى لوحة بيانات DevOps والتفاعل > Crashlytics للبحث عن تقرير العطل التجريبي.

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

تفعيل ميزة تسجيل معلومات تصحيح الأخطاء في Crashlytics

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

  1. فعِّل ميزة تسجيل معلومات تصحيح الأخطاء:

    1. في Xcode، انقر على المنتج (Product) > المخطط (Scheme) > تعديل المخطط (Edit scheme).

    2. انقر على تشغيل (Run) من القائمة على يمين الصفحة، ثم انقر على علامة التبويب المَعلمات (Arguments).

    3. في قسم المَعلمات التي تم ضبطها عند الإطلاق (Arguments Passed on Launch) ، أضِف -FIRDebugEnabled.

  2. افرض حدوث عطل تجريبي. يصف القسم الأول من هذه الصفحة كيفية إجراء ذلك.

  3. ضِمن سجلاتك، ابحث عن رسالة سجلّ من Crashlytics التي تحتوي على السلسلة التالية، ما يؤكّد أنّ تطبيقك يرسل الأعطال إلى Firebase.

    Completed report submission

بعد خمس دقائق، إذا لم يظهر لك هذا السجلّ أو العطل التجريبي في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase، تواصَل مع فريق دعم Firebase وأرسِل إليه نسخة من ناتج السجلّ لنتمكّن من مساعدتك في تحديد المشاكل وحلّها بشكلٍ أكبر.

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

  • خصِّص إعداد تقرير العطل عن طريق إضافة ميزة إعداد التقارير الاختيارية والسجلات والمفاتيح وتتبُّع الأخطاء غير الفادحة.