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