قم بتخصيص تقارير الأعطال الخاصة بـ Firebase Crashlytics

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

  • احصل تلقائيًا على سجلات التنقل إذا كان تطبيقك يستخدم Firebase SDK لـ Google Analytics. تمنحك هذه السجلات إمكانية رؤية إجراءات المستخدم التي سبقت حدث Crashlytics الذي تم جمعه في تطبيقك.

  • قم بإيقاف تشغيل تقارير الأعطال التلقائية وتمكين تقارير الاشتراك للمستخدمين. لاحظ أن Crashlytics، بشكل افتراضي، تقوم تلقائيًا بجمع تقارير الأعطال لجميع مستخدمي تطبيقك.

الإبلاغ عن الاستثناءات

تم الإبلاغ عن الاستثناءات

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

يمكنك تسجيل الاستثناءات في C# باستخدام الطريقة التالية:

Crashlytics.LogException(Exception ex);

يمكنك تسجيل الاستثناءات المتوقعة في كتل المحاولة/الالتقاط الخاصة باللعبة:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

الإبلاغ عن الاستثناءات التي لم يتم اكتشافها

بالنسبة للاستثناءات التي لم يتم اكتشافها والتي لا تؤدي إلى تعطل لعبتك (على سبيل المثال، استثناءات C# التي لم يتم اكتشافها في منطق اللعبة)، يمكنك جعل Crashlytics SDK يبلغ عنها كأحداث قاتلة عن طريق تعيين خاصية Crashlytics.ReportUncaughtExceptionsAsFatal على القيمة true حيث تقوم بتهيئة Crashlytics في مشروع Unity الخاص بك . يتم الإبلاغ عن هذه الأحداث إلى Crashlytics في الوقت الفعلي دون الحاجة إلى قيام المستخدم النهائي بإعادة تشغيل اللعبة.

إن الإبلاغ عن هذه الاستثناءات التي لم يتم اكتشافها كأحداث قاتلة يعني أنها ستُحسب في إحصائيات المستخدم الخالية من الأعطال وفي تنبيهات السرعة.

لاحظ أنه يتم دائمًا الإبلاغ عن الأعطال الأصلية كأحداث قاتلة . يتم تسجيل هذه الأحداث على الجهاز ثم يتم إرسالها عندما يقوم المستخدم النهائي بإعادة تشغيل اللعبة.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

قم بتضمين تقارير GWP-ASan لتصحيح مشكلات تلف الذاكرة

بالنسبة لتطبيقات Android التي تستخدم IL2CPP، يمكن أن تساعدك Crashlytics في تصحيح الأخطاء الناتجة عن أخطاء الذاكرة الأصلية من خلال جمع تقارير GWP-ASan. يمكن أن ترتبط هذه الأخطاء المتعلقة بالذاكرة بتلف الذاكرة داخل تطبيقك، وهو السبب الرئيسي للثغرات الأمنية في التطبيق.

  • يمكنك عرض هذه البيانات في علامة التبويب الجديدة "تتبعات مكدس الذاكرة" عند النقر فوق تفاصيل المشكلة في لوحة معلومات Crashlytics .

  • يمكنك أيضًا استخدام الإشارة والتصفية الجديدة "تقرير GWP-ASan" لعرض جميع المشكلات المتعلقة بهذه البيانات بسرعة.

يمكنك الحصول على تقارير ذاكرة GWP-ASan إذا كان تطبيقك يستخدم أحدث إصدار من Crashlytics SDK for Unity (الإصدار 10.7.0+) وتم تمكين GWP-ASan بشكل صريح (يتطلب منك تعديل بيان تطبيق Android الخاص بك ). إذا كان لديك أي رمز C++ في تطبيقك، فيمكنك اختبار إعداد GWP-ASan باستخدام مثال التعليمات البرمجية الأصلية في وثائق Android .

إضافة مفاتيح مخصصة

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

  • في لوحة معلومات Crashlytics ، يمكنك البحث عن المشكلات التي تطابق مفتاحًا مخصصًا.
  • عندما تقوم بمراجعة مشكلة معينة في وحدة التحكم، يمكنك عرض المفاتيح المخصصة المرتبطة بكل حدث (علامة التبويب الفرعية المفاتيح ) وحتى تصفية الأحداث حسب المفاتيح المخصصة (قائمة التصفية في أعلى الصفحة).

عند الاتصال عدة مرات، ستقوم القيم الجديدة للمفاتيح الموجودة بتحديث القيمة، ويتم التقاط القيمة الأحدث فقط عند تسجيل العطل.

Crashlytics.SetCustomKey(string key, string value);

إضافة رسائل السجل المخصصة

ترتبط الرسائل المسجلة ببيانات الأعطال الخاصة بك وتكون مرئية في لوحة معلومات Firebase Crashlytics عند عرض عطل معين.

Crashlytics.Log(string message);

تعيين معرفات المستخدم

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

Crashlytics.SetUserId(string identifier);

الحصول على سجلات مسار التنقل

تمنحك سجلات التنقل فهمًا أفضل للتفاعلات التي أجراها المستخدم مع تطبيقك والتي أدت إلى حدوث عطل أو حدث غير مميت أو ANR. يمكن أن تكون هذه السجلات مفيدة عند محاولة إعادة إنتاج مشكلة ما وتصحيح أخطائها.

يتم تشغيل سجلات التنقل بواسطة Google Analytics، لذا للحصول على سجلات التنقل، تحتاج إلى تمكين Google Analytics لمشروع Firebase الخاص بك وإضافة Firebase SDK لـ Google Analytics إلى تطبيقك. بمجرد استيفاء هذه المتطلبات، يتم تضمين سجلات التنقل تلقائيًا مع بيانات الحدث ضمن علامة التبويب "السجلات" عند عرض تفاصيل المشكلة.

تقوم Analytics SDK تلقائيًا بتسجيل حدث screen_view الذي يمكّن سجلات مسار التنقل من عرض قائمة بالشاشات التي تم عرضها قبل حدث العطل أو الحدث غير الفادح أو حدث ANR. يحتوي سجل مسار التنقل screen_view على معلمة firebase_screen_class .

تتم أيضًا تعبئة سجلات التنقل التفصيلي بأي أحداث مخصصة تقوم بتسجيلها يدويًا خلال جلسة المستخدم، بما في ذلك بيانات معلمات الحدث. يمكن أن تساعد هذه البيانات في إظهار سلسلة من إجراءات المستخدم التي تؤدي إلى حدوث عطل أو حدث غير مميت أو حدث ANR.

لاحظ أنه يمكنك التحكم في جمع واستخدام بيانات Google Analytics ، والتي تتضمن البيانات التي تملأ سجلات التنقل.

تمكين الاشتراك في التقارير

افتراضيًا، يقوم Crashlytics تلقائيًا بجمع تقارير الأعطال لجميع مستخدمي تطبيقك. يمكنك منح المستخدمين مزيدًا من التحكم في البيانات التي يرسلونها من خلال السماح لهم بالاشتراك في الإبلاغ عن الأعطال.

لتعطيل التجميع التلقائي وتهيئة Crashlytics للمستخدمين المحددين فقط، قم باستدعاء تجاوز مجموعة بيانات Crashlytics في وقت التشغيل. تستمر قيمة التجاوز عبر عمليات تشغيل تطبيقك حتى يتمكن Crashlytics من جمع التقارير تلقائيًا. لإلغاء الاشتراك في إعداد تقارير الأعطال التلقائية، قم بتمرير false كقيمة التجاوز. عند التعيين على false ، لا يتم تطبيق القيمة الجديدة حتى التشغيل التالي للتطبيق.

Crashlytics.IsCrashlyticsCollectionEnabled = true

إدارة بيانات Crash Insights

تساعدك Crash Insights على حل المشكلات عن طريق مقارنة تتبعات المكدس المجهولة الهوية بالتتبعات من تطبيقات Firebase الأخرى وإعلامك بما إذا كانت مشكلتك جزءًا من اتجاه أكبر. بالنسبة للعديد من المشكلات، توفر Crash Insights أيضًا موارد لمساعدتك في تصحيح أخطاء العطل.

يستخدم Crash Insights بيانات الأعطال المجمعة لتحديد اتجاهات الاستقرار الشائعة. إذا كنت تفضل عدم مشاركة بيانات تطبيقك، فيمكنك إلغاء الاشتراك في Crash Insights من قائمة Crash Insights الموجودة أعلى قائمة مشكلات Crashlytics في وحدة تحكم Firebase .