התאמה אישית של דוחות הקריסה ב-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# שלא תועדו בלוגיקה של המשחק), אפשר להגדיר ל-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 ולפתור קריסות שנגרמות כתוצאה משגיאות זיכרון נייטיב. יכול להיות ששגיאות שקשורות לזיכרון קשורות לפגיעה בזיכרון בתוך האפליקציה, וזה הגורם המוביל לנקודות חולשה באבטחת האפליקציה.

  • אפשר לראות את הנתונים האלה בכרטיסייה החדשה 'מעקבים אחר סטאק של זיכרון', כשלוחצים על פרטי הבעיה במרכז הבקרה של Crashlytics.

  • אפשר גם להשתמש באות ובמסנן החדשים 'דוח GWP-ASan' כדי להציג במהירות את כל הבעיות בנתונים האלה.

אפשר לקבל דוחות זיכרון של GWP-ASan אם האפליקציה שלכם משתמשת ב-SDK העדכני ביותר של Crashlytics ל-Unity (גרסה 10.7.0 ואילך) והפעלת GWP-ASan באופן מפורש (נדרש שינוי של קובץ המניפסט של אפליקציית Android). אם יש באפליקציה קוד C++‎, אפשר לבדוק את ההגדרה של GWP-ASan באמצעות קוד ילידי לדוגמה במסמכי העזרה של Android.

הוספת מקשים בהתאמה אישית

מפתחות בהתאמה אישית עוזרים לכם לקבל את המצב הספציפי של האפליקציה לפני קריסת האפליקציה. אתם יכולים לשייך צמדי מפתח/ערך שרירותיים לדוחות הקריסה, ואז להשתמש במפתחות המותאמים אישית כדי לחפש ולסנן דוחות קריסה במסוף Firebase.

  • במרכז הבקרה Crashlytics אפשר לחפש בעיות שתואמות למפתח מותאם אישית.
  • כשבודקים בעיה ספציפית במסוף, אפשר לראות את המפתחות המותאמים אישית המשויכים לכל אירוע (כרטיסיית המשנה Keys) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (תפריט Filter בחלק העליון של הדף).

כשמפעילים את הפונקציה כמה פעמים, ערכים חדשים למפתחות קיימים מעדכנים את הערך, ורק הערך העדכני ביותר מתועד כשמתועדת קריסה.

Crashlytics.SetCustomKey(string key, string value);

הוספת הודעות יומן בהתאמה אישית

ההודעות שמתועדות משויכות לנתוני הקריסה שלכם, והן מוצגות בלוח הבקרה של Firebase Crashlytics כשצופים בקריסה ספציפית.

Crashlytics.Log(string message);

הגדרת מזהים של משתמשים

אתם יכולים להשתמש במספר מזהה, באסימון או בערך גיבוב כדי לזהות באופן ייחודי את משתמש הקצה של האפליקציה שלכם, בלי לחשוף או להעביר את הפרטים האישיים שלו. אפשר גם לנקות את הערך על ידי הגדרתו למחרוזת ריקה. הערך הזה מוצג במרכז הבקרה Firebase Crashlytics כשמציגים קריסה ספציפית.

Crashlytics.SetUserId(string identifier);

אחזור יומני נתיבי ניווט

יומני נתיבי ניווט עוזרים להבין טוב יותר את האינטראקציות שהיו למשתמש עם האפליקציה שהובילו לקריסה, לאירוע לא קטלני או ל-ANR. היומנים האלה יכולים להיות מועילים כשמנסים לשחזר בעיה ולנפות באגים בה.

יומני נתיב הניווט מופעל על ידי Google Analytics, ולכן כדי לקבל יומני נתיב הניווט, צריך להפעיל את Google Analytics בפרויקט Firebase ולהוסיף את ה-SDK של Firebase ל-Google Analytics לאפליקציה. אחרי שתבצעו את הדרישות האלה, יומני נתיב הניווט ייכללו באופן אוטומטי בנתונים של אירוע בכרטיסייה יומנים כשמציגים את פרטי הבעיה.

ה-SDK Analytics מתעד באופן אוטומטי את האירוע screen_view, וכך מאפשר ביומני המיקום להציג רשימה של מסכים שנצפו לפני הקריסה, האירוע הלא חמור או ה-ANR. יומן של נתיב breadcrumbs מסוג screen_view מכיל פרמטר firebase_screen_class.

יומני נתיבי הניווט מאוכלסים גם בכל אירועים מותאמים אישית שאתם מתעדים באופן ידני במסגרת הסשן של המשתמש, כולל נתוני הפרמטרים של האירוע. הנתונים האלה יכולים לעזור להציג סדרה של פעולות משתמש שהובילו לתאונה, לאירוע ANR או לאירוע לא קטלני.

לתשומת ליבכם: אתם יכולים לשלוט באיסוף ובשימוש בנתוני Google Analytics, כולל הנתונים שמאכלסים את יומני הלחם.

הפעלת דיווח על הסכמה

כברירת מחדל, Crashlytics אוסף באופן אוטומטי דוחות קריסה של כל המשתמשים באפליקציה. אפשר לתת למשתמשים יותר שליטה בנתונים שהם שולחים אם מאפשרים להם להביע הסכמה לדיווח על קריסות.

כדי להשבית את האיסוף האוטומטי ולהפעיל את Crashlytics רק למשתמשים נבחרים, צריך להפעיל את שינוי ברירת המחדל של איסוף הנתונים של Crashlytics בזמן הריצה. ערך ההחרגה נשמר בכל ההפעלות של האפליקציה, כדי ש-Crashlytics יוכל לאסוף דוחות באופן אוטומטי. כדי לבטל את ההסכמה לדיווח אוטומטי על קריסות, מעבירים את הערך false כערך לשינוי ברירת המחדל. כשהערך מוגדר כ-false, הערך החדש לא יחול עד להפעלה הבאה של האפליקציה.

Crashlytics.IsCrashlyticsCollectionEnabled = true

ניהול הנתונים של תובנות לגבי קריסות

התכונה 'תובנות לגבי קריסות' עוזרת לכם לפתור בעיות על ידי השוואה של עקבות ה-stack האנונימיים שלכם לעקבות מאפליקציות אחרות ב-Firebase, ומציינת אם הבעיה היא חלק ממגמה רחבה יותר. לגבי בעיות רבות, התכונה 'תובנות לגבי קריסות' מספקת גם מקורות מידע שיעזרו לכם לנפות את הבאגים שגרמו לקריסה.

התכונה 'תובנות לגבי קריסות' משתמשת בנתוני קריסות שנצברו כדי לזהות מגמות נפוצות ביציבות. אם אתם מעדיפים לא לשתף את נתוני האפליקציה, תוכלו לבטל את ההסכמה לשימוש בתכונה 'תובנות לגבי קריסות' בתפריט תובנות לגבי קריסות בחלק העליון של רשימת הבעיות Crashlytics במסוף Firebase.