| اختيار النظام الأساسي: | iOS+ Android Android NDK Flutter Unity |
يشرح هذا الدليل كيفية البدء باستخدام Firebase Crashlytics في تطبيقك على منصات Apple (مثل تطبيق iOS).
بعد إعداد حزمة Firebase Crashlytics SDK في تطبيقك، يمكنك الحصول على تقارير شاملة عن الأعطال في وحدة تحكّم Firebase. باستخدام Crashlytics لمنصات Apple، يمكنك الحصول على تقارير عن الأعطال والأخطاء غير الخطيرة.
يتطلّب إعداد Crashlytics تنفيذ مهام في كلّ من وحدة تحكّم Firebase و بيئة التطوير المتكاملة (مثل إضافة ملف إعداد Firebase وحزمة Crashlytics SDK). لإكمال عملية الإعداد، عليك فرض حدوث عطل اختباري لإرسال أول تقرير عن العطل إلى Firebase.
قبل البدء
أضِف Firebase إلى مشروع Apple الخاص بك، في حال لم يسبق لك إجراء ذلك. إذا لم يكن لديك تطبيق على Apple، يمكنك تنزيل نموذج تطبيق.
مقترَح: للحصول تلقائيًا على سجلّات التتبّع لفهم إجراءات المستخدم التي أدّت إلى حدوث تعطُّل أو حدث غير خطير، عليك تفعيل Google Analytics في مشروع Firebase.
إذا كنت بصدد إنشاء مشروع جديد في Firebase، فعِّل Google Analytics أثناء خطوات إنشاء المشروع.
إذا كنت تستخدم مشروع Firebase حاليًا لم يتم تفعيل Google Analytics فيه، يمكنك تفعيلها في
الإعدادات > عمليات الدمج صفحة من الـ Firebase وحدة تحكّم.
يُرجى العِلم أنّ سجلّات التتبّع متاحة لجميع منصات Apple التي يتيحها Crashlytics باستثناء watchOS.
الخطوة 1: إضافة حزمة Crashlytics SDK إلى تطبيقك
استخدِم Swift Package Manager لتثبيت التبعيات في Firebase وإدارتها.
- في Xcode، افتح مشروع تطبيقك وانتقِل إلى ملف > إضافة حِزم.
- عندما يُطلب منك ذلك، أضِف مستودع حزمة Firebase SDK لمنصات Apple:
- اختَر مكتبة Crashlytics.
- للاستفادة من سجلّات التتبّع، أضِف أيضًا حزمة Firebase SDK الخاصة بخدمة Google Analytics إلى تطبيقك. تأكَّد من تفعيل "إحصاءات Google" في مشروع Firebase الخاص بك.
- أضِف العلامة
-ObjCإلى قسم Other Linker Flags في إعدادات الإصدار لهدفك. - (نظام التشغيل macOS فقط) في ملف
Info.plist، أضِف المفتاحNSApplicationCrashOnExceptionsواضبط قيمته علىYES. - عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
بعد ذلك، اضبط وحدة Firebase:
استورِد وحدة Firebase في البنية
AppأوUIApplicationDelegate:Swift
import Firebase
Objective-C
@import Firebase;
اضبط مثيلاً مشتركًا من
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 تلقائيًا ومعالجتها وتحميلها في كل مرة تنشئ فيها تطبيقك.
افتح مساحة عمل Xcode الخاصة بمشروعك، ثم اختَر ملف المشروع في أداة التنقّل على يمين الشاشة.
من قائمة الأهداف ، اختَر هدف الإصدار الرئيسي.
انقر على علامة التبويب إعدادات الإصدار ، ثم أكمل الخطوات التالية لكي ينتج Xcode ملفات dSYM لإصداراتك.
انقر على الكل، ثم ابحث عن
debug information format.اضبط Debug Information Format على
DWARF with dSYM Fileلجميع أنواع الإصدارات.
انقر على علامة التبويب مراحل الإصدار ، ثم أكمل الخطوات التالية لكي يتمكّن Xcode من معالجة ملفات dSYM وتحميلها.
انقر على > New Run Script Phase.
تأكَّد من أنّ مرحلة Run Script الجديدة هي آخر مرحلة إصدار في مشروعك ، وإلا لن يتمكّن Crashlytics من معالجة ملفات dSYM بشكلٍ صحيح.
وسِّع قسم Run Script الجديد.
في حقل النص البرمجي (الموجود تحت التصنيف Shell)، أضِف النص البرمجي التالي لتشغيله.
يعالج هذا النص البرمجي ملفات dSYM الخاصة بمشروعك ويحمّلها إلى Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"في قسم Input Files ، أضِف مسارات مواقع الملفات التالية:
${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)
ENABLE_USER_SCRIPT_SANDBOXING=YESوENABLE_DEBUG_DYLIB=YESفي إعدادات إصدار مشروعك، فأضِف ما يلي:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
لمزيد من المعلومات التفصيلية عن ملفات dSYM وCrashlytics (بما في ذلك كيفية تحميل ملفات dSYM يدويًا)، انتقِل إلى الحصول على تقارير عن الأعطال بعد إزالة الغموض عنها.
الخطوة 3: فرض حدوث عطل اختباري لإكمال عملية الإعداد
لإكمال إعداد Crashlytics والاطّلاع على البيانات الأولية في Crashlytics لوحة بيانات Firebase console، عليك فرض حدوث عطل اختباري.
أضِف رمزًا إلى تطبيقك يمكنك استخدامه لفرض حدوث عطل اختباري.
يمكنك استخدام الرمز التالي لإضافة زر إلى تطبيقك يؤدي إلى حدوث عطل عند النقر عليه. يُطلق على الزر اسم "اختبار العطل".
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
أنشئ تطبيقك وشغِّله في Xcode مع فصل مصحّح أخطاء Xcode.
انقر على إنشاء المخطط الحالي ثم تشغيله لإنشاء تطبيقك على جهاز اختباري أو محاكي.
انتظِر حتى يتم تشغيل تطبيقك، ثم انقر على إيقاف تشغيل المخطط أو الإجراء لإغلاق المثال الأولي لتطبيقك. يتضمّن هذا المثال الأولي مصحّح الأخطاء الذي يتداخل مع Crashlytics.
افرض حدوث العطل الاختباري لإرسال أول تقرير عن العطل في تطبيقك:
افتح تطبيقك من الشاشة الرئيسية لجهازك الاختباري أو المحاكي.
في تطبيقك، انقر على الزر "اختبار العطل" الذي أضفته باستخدام الرمز أعلاه.
بعد تعطُّل تطبيقك، شغِّله مرة أخرى من Xcode لكي يتمكّن من إرسال تقرير العطل إلى Firebase.
في وحدة تحكّم Firebase، انتقِل إلى لوحة بيانات DevOps & Engagement > Crashlytics للبحث عن تقرير العطل الاختباري .
إذا سبق لك إعادة تحميل وحدة التحكّم ولا يزال العطل الاختباري لا يظهر بعد خمس دقائق، فعِّل تسجيل الأخطاء لتصحيحها لمعرفة ما إذا كان تطبيقك يرسل تقارير عن الأعطال.
هذا كل شيء. Crashlytics يراقب الآن تطبيقك بحثًا عن الأعطال. انتقِل إلى لوحة بيانات Crashlytics لعرض جميع تقاريرك وإحصاءاتك والتحقيق فيها.
الخطوات التالية
خصِّص إعداد تقرير العطل من خلال إضافة ميزة إعداد التقارير الاختيارية والسجلّات والمفاتيح وتتبُّع الأخطاء غير الخطيرة.
صدِّر بياناتك إلى BigQuery أو Cloud Logging للاستفادة من التحليل المتقدّم والميزات المتقدّمة، مثل طلب البحث عن بياناتك وإنشاء لوحات بيانات مخصّصة وإعداد تنبيهات مخصّصة.