في لوحة بيانات Crashlytics، يمكنك النقر على مشكلة والحصول على تقرير الحدث. يمكنك تخصيص هذه التقارير لمساعدتك على فهم ما يحدث في تطبيقك والظروف المحيطة بالأحداث التي يتم الإبلاغ عنها Crashlytics
استخدِم تطبيقك لتسجيل المفاتيح المخصّصة. رسائل السجلّ المخصَّصة ومعرّفات المستخدمين.
إبلاغ Crashlytics عن الاستثناءات
الحصول على سجلات شريط التنقل تلقائيًا إذا كان تطبيقك يستخدم حزمة تطوير البرامج (SDK) لمنصّة Firebase الخاصّة بخدمة "إحصاءات Google" تمنحك هذه السجلات رؤية في إجراءات المستخدمين التي أدت إلى حدث تم جمعه من خلال Crashlytics في تطبيقك.
أوقِف الإبلاغ عن الأعطال تلقائيًا و تفعيل إعداد تقارير الموافقة للمستخدمين لاحظ أنه من خلال تلقائيًا، يجمع Crashlytics تلقائيًا تقارير الأعطال لجميع مستخدمي التطبيق.
إضافة مفاتيح مخصّصة
تساعدك المفاتيح المخصّصة في معرفة الحالة المحدّدة لتطبيقك التي تؤدي إلى تعطُّل. يمكنك ربط أزواج مفاتيح/قيم عشوائية بتقارير الأعطال، ومن ثمَّ استخدام المفاتيح المخصَّصة للبحث عن تقارير الأعطال وتصفيتها في وحدة تحكُّم Firebase.
في لوحة بيانات Crashlytics، يمكنك البحث عن المشاكل. التي تطابق مفتاحًا مخصصًا
عند مراجعة مشكلة معيّنة في وحدة التحكّم، يمكنك الاطّلاع على المفاتيح المخصّصة المرتبطة بكل حدث (علامة التبويب الفرعية المفاتيح) وحتى فلترة الأحداث حسب مفاتيح مخصّصة (قائمة فلترة في أعلى الصفحة).
استخدِم طريقة المثيل setCustomKey
لضبط أزواج المفتاح/القيمة. لاحظ أن
تم تحميل setCustomKey
بشكل زائد للمعلَمة value
لقبول أي قاعدة.
أو وسيطة String
. وإليك بعض الأمثلة:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
يمكنك أيضًا تعديل قيمة مفتاح حالي من خلال طلب المفتاح ثم ضبط إلى قيمة مختلفة. على سبيل المثال:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
أضِف أزواج المفتاح/القيمة بشكلٍ مجمَّع من خلال تمرير مثيل CustomKeysAndValues
إلى
طريقة المثيل setCustomKeys
:
Kotlin+KTX
بالنسبة إلى Kotlin، تعد الوظائف الحالية أبسط من استخدام
منصة إنشاء CustomKeysAndValues
.
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
إضافة رسائل سجلّ مخصَّصة
لمنح نفسك المزيد من السياق حول الأحداث التي أدت إلى حادث سير، يمكنك إضافة لسجلات Crashlytics المخصصة لتطبيقك. يربط Crashlytics السجلات. مع بيانات الأعطال وعرضها في صفحة Crashlytics من وحدة تحكُّم Firebase ضِمن علامة التبويب السجلات
استخدِم log
للمساعدة في تحديد المشاكل. على سبيل المثال:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
ضبط معرّفات المستخدمين
لتشخيص مشكلة، من المفيد في كثير من الأحيان معرفة المستخدمين الذين واجهوا مشكلة عطل معين. يتضمن Crashlytics طريقة للكشف عن هوية المستخدمين في تقارير الأعطال لديك.
لإضافة أرقام تعريف مستخدمين إلى تقاريرك، عليك تخصيص معرّف فريد لكل مستخدم في شكل رقم تعريف أو رمز مميز أو قيمة مجزّأة:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
إذا احتجت في أي وقت إلى محو معرّف مستخدم بعد تعيينه، فأعد تعيين القيمة على سلسلة فارغة. لا يؤدي محو معرّف المستخدم إلى إزالة البيانات الحالية. سجلّات Crashlytics إذا كنت بحاجة إلى حذف السجلات المرتبطة بأحد المستخدمين رقم التعريف، يُرجى التواصل مع فريق دعم Firebase.
(Android NDK فقط) إضافة البيانات الوصفية إلى تقارير أعطال NDK
يمكنك اختياريًا تضمين العنوان crashlytics.h
في رمز C++ لإضافة
البيانات الوصفية لتقارير أعطال NDK، مثل المفاتيح المخصصة،
السجلات المخصّصة
معرّفات المستخدمين. يتم توضيح جميع هذه الخيارات على
هذه الصفحة أعلاه.
تتوفر crashlytics.h
كمكتبة C++ مخصصة للرأس فقط في
مستودع GitHub لحزمة تطوير البرامج (SDK) لنظام التشغيل Android من Firebase
اقرأ التعليقات في ملف العنوان للحصول على تعليمات حول استخدام واجهات برمجة تطبيقات NDK C++.
تضمين تقارير GWP-ASan لتصحيح مشاكل تلف الذاكرة
يمكن أن يساعدك تطبيق Crashlytics في تصحيح أخطاء الأعطال الناتجة عن أخطاء الذاكرة الأصلية التي جمع تقارير GWP-ASan. يمكن ربط هذه الأخطاء المتعلقة بالذاكرة تلف الذاكرة داخل التطبيق، وهو السبب الرئيسي لأمان التطبيقات الثغرات الأمنية.
يمكنك عرض هذه البيانات في تقرير جديد من "عمليات تتبُّع تسلسل استدعاء الدوال البرمجية". اضغط على مفتاح التبويب (Tab) عند النقر في تفاصيل المشكلة في لوحة بيانات Crashlytics
يمكنك أيضًا استخدام "تقرير GWP-ASan" الجديد الإشارة والفلترة لعرض التفاصيل جميع المشكلات المتعلقة بهذه البيانات.
يمكنك الحصول على تقارير الذاكرة التي تم إنشاؤها باستخدام أداة GWP-ASan إذا لم تفعيل GWP-ASan صراحةً في تطبيقك واستخدام حزمة تطوير البرامج (SDK) في Crashlytics للإصدار NDK v18.3.6 أو الإصدارات الأحدث (المعروفة باسم Firebase BoM) الإصدار 31.3.0 أو إصدار أحدث). يمكنك اختبار إعداد GWP-ASan باستخدام مثال على الرمز الأصلي في مستندات Android.
الإبلاغ عن الاستثناءات غير الفادحة
بالإضافة إلى ميزة الإبلاغ تلقائيًا عن أعطال تطبيقك، يتيح تطبيق Crashlytics تسجيل الاستثناءات غير الفادحة وإرسالها إليك في المرة القادمة التي يستخدم فيها تطبيقك عمليات الإطلاق.
يمكنك استخدام طريقة recordException
لتسجيل الاستثناءات غير الفادحة في تطبيقك.
catch
مربّعات على سبيل المثال:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
تظهر جميع الاستثناءات المسجَّلة على أنّها مشاكل غير فادحة في وحدة تحكُّم Firebase. يحتوي ملخص المشكلة على جميع معلومات الولاية التي تحصل عليها عادةً من والأعطال، بالإضافة إلى تفاصيل حسب إصدار Android والجهاز.
يعالج Crashlytics استثناءات على سلسلة محادثات مخصّصة في الخلفية من أجل والحدّ من تأثير الأداء على تطبيقك لخفض شبكة المستخدمين يعمل Crashlytics على تسجيل الاستثناءات معًا وإرسال في المرة القادمة التي يتم فيها تشغيل التطبيق.
الحصول على سجلات شريط التنقل
تمنحك سجلات شريط التنقل فهمًا أفضل للتفاعلات التي يجريها المستخدم في تطبيقك أدى إلى تعطُّل أو حدث غير خطير أو خطأ ANR. يمكن لهذه السجلات أن تكون مفيدة عند محاولة إعادة إنتاج مشكلة ما وتصحيحها.
يتم دعم سجلات شريط التنقل من خلال Google Analytics، وبالتالي للحصول على سجلات شريط التنقل، بحاجة إلى تفعيل "إحصاءات Google" لمشروعك على Firebase إضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase الخاصّة بخدمة "إحصاءات Google" إلى تطبيقك. بعد استيفاء هذه المتطلبات، يتم تلقائيًا إنشاء سجلات شريط التنقل. مضمّنة في بيانات الحدث ضمن علامة التبويب السجلات عند عرض التفاصيل المشكلة.
حزمة تطوير البرامج لخدمة "إحصاءات Google"
يسجّل تلقائيًا حدث screen_view
والذي يمكّن سجلات شريط التنقل من عرض قائمة بالشاشات التي تمت مشاهدتها قبل
أعطال أو أحداث غير فادحة أو أحداث ANR. يحتوي سجلّ شريط التنقّل screen_view
على
مَعلمة firebase_screen_class
.
تتم تعبئة سجلات شريط التنقل أيضًا بأي الأحداث المخصّصة التي تسجّلها يدويًا داخل سجلّ المستخدم بما في ذلك بيانات مَعلمات الحدث يمكن أن تساعد هذه البيانات في عرض سلسلة إجراءات المستخدمين التي أدت إلى تعطُّل أو حدث غير فادح أو خطأ ANR.
لاحظ أنه يمكنك التحكّم في جمع بيانات "إحصاءات Google" واستخدامها والتي تتضمّن البيانات التي تُعبّئ سجلات شريط التنقّل.
تفعيل إعداد تقارير الموافقة
يجمع تطبيق Crashlytics تلقائيًا تقارير الأعطال لجميع مستخدمي التطبيق. لمنح المستخدمين المزيد من التحكم في البيانات التي يرسلونها، يمكنك تفعيل تمكين إعداد التقارير عن طريق إيقاف إعداد التقارير التلقائية وإرسال البيانات فقط إلى Crashlytics عند اختيار ذلك في التعليمة البرمجية:
في القسم
application
من ملفAndroidManifest.xml
، أضِف علامةmeta-data
لإيقاف عملية الجمع التلقائي للبيانات:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
تفعيل عملية الجمع لمستخدمين محدَّدين من خلال استدعاء بيانات Crashlytics تجاوز المجموعة في وقت التشغيل. تستمر قيمة الإلغاء في جميع عمليات التشغيل. في تطبيقك ليتمكّن تطبيق Crashlytics من جمع التقارير تلقائيًا. للإيقاف من تقارير الأعطال التلقائية، اضبط
false
كقيمة الإلغاء. عند الضبط إلىfalse
، لا تنطبق القيمة الجديدة إلى أن يتم تشغيل التطبيق في المرة التالية.Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
إدارة بيانات "إحصاءات الأعطال"
تساعدك ميزة "إحصاءات الأعطال" في حلّ المشاكل من خلال مقارنة الحزمة المجهولة الهوية. يتيح لك تتبّع نشاطك التجاري من تطبيقات Firebase الأخرى وإعلامك بما إذا كانت المشكلة جزء من اتجاه أكبر. بالنسبة إلى العديد من المشاكل، توفّر ميزة "إحصاءات الأعطال" مراجع أيضًا. لمساعدتك في تصحيح العطل.
تستخدم "إحصاءات الأعطال" بيانات الأعطال المجمّعة لتحديد مؤشرات الاستقرار الشائعة. إذا أردت عدم مشاركة بيانات تطبيقك، يمكنك إيقاف "إحصاءات الأعطال". من قائمة إحصاءات الأعطال في أعلى قائمة مشاكل Crashlytics في وحدة تحكُّم Firebase.