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