اختبار عملية تنفيذ 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 & Engagement > 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 & Engagement > Crashlytics في Firebase، تواصَل مع فريق دعم Firebase وأرسِل إليه نسخة من ناتج السجلّ لنتمكّن من مساعدتك في تحديد المشاكل وحلّها.

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

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