| اختيار المنصة: | +iOS Android Flutter Unity |
يمكنك النقر على مشكلة والحصول على تقرير مفصّل عن الحدث في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase. يمكنك تخصيص هذه التقارير لمساعدتك في فهم ما يحدث في تطبيقك والظروف المحيطة بالأحداث التي يتم إبلاغ "Crashlytics" بها بشكل أفضل.
يمكنك الإبلاغ عن الاستثناءات التي تم رصدها والاستثناءات التي لم يتم رصدها إلى Crashlytics.
تضمين تقارير GWP-ASan لتصحيح أخطاء تلف الذاكرة
يمكنك تجهيز تطبيقك لتسجيل المفاتيح المخصّصة والرسائل المسجّلة المخصّصة ومعرّفات المستخدمين.
يمكنك الحصول تلقائيًا على سجلّات خطوات المستخدم إذا كان تطبيقك يستخدم حزمة تطوير البرامج (SDK) لمنصّة Firebase لنظام التشغيل Google Analytics. تتيح لك هذه السجلّات الاطّلاع على إجراءات المستخدمين التي تؤدي إلى حدث تم جمعه من خلال "Crashlytics" في تطبيقك.
أوقِف ميزة إعداد تقارير الأعطال تلقائيًا وفعِّل ميزة إعداد التقارير بعد الموافقة للمستخدمين. يُرجى العِلم أنّ Crashlytics يجمع تلقائيًا تقارير الأعطال لجميع مستخدمي تطبيقك.
الإبلاغ عن الاستثناءات
الإبلاغ عن الاستثناءات التي تم رصدها
إذا كانت لديك استثناءات متوقّعة، يمكنك ضبط حزمة تطوير البرامج (SDK) الخاصة بـ Crashlytics على الإبلاغ عنها على أنّها أحداث غير خطيرة. يتم تسجيل هذه الأحداث على الجهاز، ثم إرسالها مع تقرير الحدث التالي الذي يتسبب في تعطُّل اللعبة أو عندما يعيد المستخدم النهائي تشغيل اللعبة.
يمكنك تسجيل الاستثناءات في C# باستخدام الطريقة التالية:
Crashlytics.LogException(Exception ex);
يمكنك تسجيل الاستثناءات المتوقّعة في مجموعات try/catch في لعبتك:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
الإبلاغ عن الاستثناءات غير المرصودة
بالنسبة إلى الاستثناءات غير المكتشَفة التي لا تؤدي إلى تعطُّل لعبتك (على سبيل المثال، استثناءات C# غير المكتشَفة في منطق اللعبة)، يمكنك جعل حزمة تطوير البرامج (SDK) لـ Crashlytics تبلِّغ عنها على أنّها أحداث خطيرة من خلال ضبط السمة 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. يمكن أن ترتبط هذه الأخطاء المتعلّقة بالذاكرة بتلف الذاكرة داخل تطبيقك، وهو السبب الرئيسي للثغرات الأمنية في التطبيق.
في لوحة بيانات DevOps والتفاعل > Crashlytics ضمن وحدة تحكّم Firebase، يمكنك إجراء ما يلي باستخدام هذه البيانات:
يمكنك الاطّلاع على هذه البيانات في علامة التبويب الجديدة "تتبُّع تسلسل استدعاء الدوال البرمجية للذاكرة" عند النقر على تفاصيل مشكلة معيّنة.
يمكنك استخدام إشارة وفلتر "تقرير GWP-ASan" الجديدَين لعرض جميع المشاكل المتعلّقة بهذه البيانات بسرعة.
يمكنك الحصول على تقارير الذاكرة من GWP-ASan إذا كان تطبيقك يستخدم أحدث إصدار من حزمة تطوير البرامج (SDK) لـ Crashlytics في Unity (الإصدار 10.7.0 أو إصدار أحدث) وتم تفعيل GWP-ASan صراحةً (يتطلّب منك ذلك تعديل ملف بيان تطبيق Android). إذا كان لديك أي رمز C++ في تطبيقك، يمكنك اختبار إعداد GWP-ASan باستخدام مثال الرمز البرمجي الأصلي في مستندات Android.
إضافة مفاتيح مخصّصة
تساعدك المفاتيح المخصّصة في معرفة الحالة المحدّدة لتطبيقك قبل تعطّله. يمكنك ربط أزواج عشوائية من المفاتيح والقيم بتقارير الأعطال، ثم استخدام المفاتيح المخصّصة للبحث عن تقارير الأعطال وفلترتها في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase.
يمكنك البحث عن المشاكل التي تتطابق مع مفتاح مخصّص.
عند مراجعة مشكلة معيّنة في وحدة التحكّم، يمكنك الاطّلاع على المفاتيح المخصّصة المرتبطة بكل حدث (علامة التبويب الفرعية المفاتيح) وفلترة الأحداث حسب المفاتيح المخصّصة (قائمة الفلتر في أعلى الصفحة).
عند استدعاء هذه الدالة عدة مرات، سيتم تعديل القيم الجديدة للمفاتيح الحالية، وسيتم تسجيل القيمة الأحدث فقط عند تسجيل عطل.
Crashlytics.SetCustomKey(string key, string value);
إضافة رسائل سجلّ مخصّصة
للحصول على سياق إضافي للأحداث التي تؤدي إلى حدوث عطل، يمكنك إضافة سجلات Crashlytics مخصّصة إلى تطبيقك. يربط Crashlytics السجلات ببيانات الأعطال ويعرضها في علامة التبويب السجلات عند عرض تفاصيل مشكلة (يمكنك الاطّلاع على جميع المشاكل في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase).
Crashlytics.Log(string message);
ضبط معرّفات المستخدمين
يمكنك استخدام رقم تعريف أو رمز مميّز أو قيمة التجزئة لتحديد المستخدم النهائي لتطبيقك بشكل فريد بدون الإفصاح عن أي من معلوماته الشخصية أو نقلها. يمكنك أيضًا محو القيمة من خلال ضبطها على سلسلة فارغة. يتم عرض هذه القيمة عند عرض عطل معيّن في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase.
Crashlytics.SetUserId(string identifier);
الحصول على سجلّات خطوات المستخدم
تمنحك سجلّات خطوات المستخدم فهمًا أفضل للتفاعلات التي أجراها المستخدم مع تطبيقك قبل حدوث عطل أو حدث غير خطير أو حدث ANR. يمكن أن تكون هذه السجلّات مفيدة عند محاولة إعادة إظهار مشكلة وتصحيح الأخطاء.
تستند سجلّات خطوات المستخدم إلى "إحصاءات Google"، لذا للحصول على سجلّات خطوات المستخدم، عليك تفعيل "إحصاءات Google" لمشروعك على Firebase وإضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase لـ "Google Analytics" إلى تطبيقك. بعد استيفاء هذه المتطلبات، يتم تلقائيًا تضمين سجلّات خطوات المستخدم مع بيانات الحدث ضمن علامة التبويب السجلّات عند الاطّلاع على تفاصيل مشكلة (يمكنك الاطّلاع على جميع المشاكل في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم "Firebase").
تسجِّل حزمة تطوير البرامج (SDK) لخدمة Analytics
الحدث screen_view تلقائيًا،
ما يتيح لسجلّات خطوات المستخدم عرض قائمة بالشاشات التي تم الاطّلاع عليها قبل
حدث التعطُّل أو الخطأ غير الفادح أو حدث ANR. يحتوي سجلّ خطوات المستخدم screen_view على المَعلمة firebase_screen_class.
تتم أيضًا تعبئة سجلّات خطوات المستخدم بأي أحداث مخصّصة تسجّلها يدويًا ضمن جلسة المستخدم، بما في ذلك بيانات مَعلمات الأحداث. ويمكن أن تساعد هذه البيانات في عرض سلسلة من إجراءات المستخدمين التي تؤدي إلى حدوث عُطل أو حدث غير خطير أو حدث ANR.
يُرجى العِلم أنّه يمكنك التحكّم في جمع بيانات "Google Analytics" واستخدامها، بما في ذلك البيانات التي تملأ سجلّات خطوات المستخدم.
تفعيل إعداد التقارير عن الموافقة
تجمع أداة Crashlytics تلقائيًا تقارير الأعطال لجميع مستخدمي تطبيقك. يمكنك منح المستخدمين مزيدًا من التحكّم في البيانات التي يرسلونها من خلال السماح لهم بالموافقة على الإبلاغ عن الأعطال.
لإيقاف الجمع التلقائي لمستخدمين محدّدين فقط، يمكنك استدعاء إلغاء جمع بيانات Crashlytics في وقت التشغيل. تستمر قيمة الإلغاء في جميع عمليات التشغيل اللاحقة لتطبيقك حتى يتمكّن Crashlytics من جمع التقارير تلقائيًا لهذا المستخدم.
Crashlytics.IsCrashlyticsCollectionEnabled = true
إذا أوقف المستخدم لاحقًا جمع البيانات، يمكنك تمرير القيمة false كقيمة
تجاوز، وسيتم تطبيقها في المرة التالية التي يشغّل فيها المستخدم التطبيق
وستستمر في جميع عمليات التشغيل اللاحقة لهذا المستخدم.
إدارة بيانات "إحصاءات الأعطال"
تساعدك ميزة "إحصاءات الأعطال" في حلّ المشاكل من خلال مقارنة تتبُّع تسلسل استدعاء الدوال البرمجية المجهولة الهوية بتتبُّع تسلسل استدعاء الدوال البرمجية من تطبيقات Firebase الأخرى وإعلامك بما إذا كانت مشكلتك جزءًا من مؤشر أكبر. بالنسبة إلى العديد من المشاكل، توفّر ميزة "إحصاءات الأعطال" مراجع لمساعدتك في تصحيح أخطاء الأعطال.
تستخدم ميزة "إحصاءات الأعطال" بيانات الأعطال المجمّعة لتحديد المؤشرات الشائعة المتعلقة بالثبات. إذا كنت تفضّل عدم مشاركة بيانات تطبيقك، يمكنك إيقاف ميزة "إحصاءات الأعطال" من قائمة إحصاءات الأعطال في أعلى قائمة المشاكل في لوحة بيانات DevOps والتفاعل > Crashlytics في وحدة تحكّم Firebase.
الخطوات التالية
- تصدير بياناتك إلى BigQuery أو Cloud Logging للاستفادة من الميزات والتحليلات المتقدّمة، مثل الاستعلام عن بياناتك وإنشاء لوحات بيانات مخصّصة وإعداد تنبيهات مخصّصة