התאמה אישית של דוחות קריסה ב-Unity

בחירת פלטפורמה: iOS+‎ Android Flutter Unity


אפשר ללחוץ על בעיה מסוימת ולקבל דוח אירועים מפורט במרכז הבקרה של DevOps ומעורבות > Crashlytics במסוף Firebase. אתם יכולים להתאים אישית את הדוחות האלה כדי להבין טוב יותר מה קורה באפליקציה ואת הנסיבות שקשורות לאירועים שמדווחים ל-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 & Engagement > Crashlytics במסוף Firebase, אתם יכולים לבצע את הפעולות הבאות עם הנתונים האלה:

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

  • אתם יכולים להשתמש באות ובמסנן החדשים של "דוח GWP-ASan" כדי לראות במהירות את כל הבעיות שקשורות לנתונים האלה.

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

הוספת מפתחות בהתאמה אישית

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

  • אתם יכולים לחפש בעיות שתואמות למפתח מותאם אישית.

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

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

Crashlytics.SetCustomKey(string key, string value);

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

כדי לקבל הקשר נוסף לאירועים שמובילים לקריסה, אתם יכולים להוסיף לאפליקציה יומני Crashlytics בהתאמה אישית. מערכת Crashlytics משייכת את היומנים לנתוני הקריסה ומציגה אותם בכרטיסייה יומנים כשאתם צופים בפרטי הבעיה (כל הבעיות מוצגות במרכז הבקרה של DevOps ומעורבות המשתמשים > Crashlytics במסוף Firebase).

Crashlytics.Log(string message);

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

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

Crashlytics.SetUserId(string identifier);

קבלת יומני פעולות משתמש

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

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

ניהול הנתונים של Crash Insights

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

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

השלבים הבאים