בלוח הבקרה Crashlytics, אפשר ללחוץ על בעיה כדי לקבל דוח אירועים מפורט. אתם יכולים להתאים אישית את הדוחות האלה כדי לעזור לכם להבין טוב יותר מה קורה באפליקציה ואת הנסיבות של האירועים שדווחו ל-Crashlytics.
דיווח על החרגות שנתפסות ועל החרגות שלא נתפסות ל-Crashlytics.
מומלץ לכלול דוחות GWP-ASan כדי לנפות באגים בבעיות של פגיעה בזיכרון.
מוסיפים לאפליקציה כלים לתיעוד ביומן של מפתחות בהתאמה אישית, הודעות יומן בהתאמה אישית ומזהי משתמשים.
לקבל באופן אוטומטי יומני נתיב ניווט אם האפליקציה שלכם משתמשת ב-Firebase SDK ל-Google Analytics. היומנים האלה מאפשרים לכם לראות את הפעולות של המשתמשים שהובילו לאירוע שנאסף על ידי Crashlytics באפליקציה.
משביתים את הדיווח האוטומטי על קריסות ומפעילים דיווח על בסיס הסכמה למשתמשים. חשוב לזכור ש-Crashlytics אוסף באופן אוטומטי דוחות קריסה מכל המשתמשים באפליקציה.
דיווח על חריגים
דיווח על חריגות שזוהו
אם יש לכם חריגות צפויות, תוכלו להגדיר ל-Crashlytics SDK לדווח עליהן כאירועים לא קטלניים. האירועים האלה מתועדים ביומן במכשיר, ולאחר מכן נשלחים עם דוח האירוע הקטלני הבא או כשמשתמש הקצה מפעיל מחדש את המשחק.
אפשר לתעד חריגות ב-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. שגיאות שקשורות לזיכרון יכולות להיות קשורות לזיכרון פגום באפליקציה, שהוא הגורם העיקרי לפרצות אבטחה באפליקציות.
אפשר לראות את הנתונים האלה בכרטיסייה החדשה 'מעקבים אחר סטאק של זיכרון', כשלוחצים על פרטי הבעיה במרכז הבקרה של 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 ולהוסיף את ה-Firebase SDK ל-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.