| בחירת פלטפורמה: | iOS+ Android Flutter Unity |
אפשר ללחוץ על בעיה מסוימת ולקבל דוח אירועים מפורט במרכז הבקרה של DevOps ואינטראקציה עם המשתמשים > Crashlytics במסוף Firebase. אתם יכולים להתאים אישית את הדוחות האלה כדי להבין טוב יותר מה קורה באפליקציה ואת הנסיבות שקשורות לאירועים שמדווחים ל-Crashlytics.
דיווח על חריגות שנתפסו וחריגות שלא נתפסו ל-Crashlytics.
לכלול דוחות GWP-ASan כדי לנפות באגים בבעיות של פגיעה בזיכרון.
מגדירים את האפליקציה כך שתתעד מפתחות בהתאמה אישית, הודעות בהתאמה אישית ביומן ומזהי משתמשים.
אם האפליקציה משתמשת ב-Firebase SDK ל-Google Analytics, אתם מקבלים באופן אוטומטי יומני פעולות משתמש. היומנים האלה מאפשרים לכם לראות את פעולות המשתמשים שהובילו לאירוע שנאסף על ידי Crashlytics באפליקציה.
להשבית את הדיווח האוטומטי על קריסות ולהפעיל דיווח בהצטרפות למשתמשים. שימו לב שכברירת מחדל, Crashlytics אוסף באופן אוטומטי דוחות קריסה מכל משתמשי האפליקציה.
דיווח על חריגות
דיווח על חריגים שזוהו
אם יש חריגות צפויות, אפשר להגדיר ש-SDK של Crashlytics ידווח עליהן כאירועים לא קריטיים. האירועים האלה מתועדים במכשיר ונשלחים עם הדוח הבא על אירוע קריטי, או כשמשתמש הקצה מפעיל מחדש את המשחק.
כדי לתעד חריגות ב-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, צריך להשתמש בגרסה העדכנית של ה-SDK של Crashlytics ל-Unity (גרסה 10.7.0 ואילך) ולהפעיל את GWP-ASan באופן מפורש (לשם כך צריך לשנות את קובץ המניפסט של האפליקציה ל-Android). אם יש באפליקציה קוד C++, אתם יכולים לבדוק את הגדרת GWP-ASan באמצעות קוד ה-Native לדוגמה במסמכי התיעוד של Android.
הוספת מפתחות בהתאמה אישית
מפתחות בהתאמה אישית עוזרים לכם לקבל את המצב הספציפי של האפליקציה לפני הקריסה. אתם יכולים לשייך צמדים שרירותיים של מפתח/ערך לדוחות הקריסה, ואז להשתמש במפתחות בהתאמה אישית כדי לחפש ולסנן דוחות קריסה בלוח הבקרה DevOps & Engagement > Crashlytics במסוף Firebase.
אתם יכולים לחפש בעיות שתואמות למפתח מותאם אישית.
כשבודקים בעיה ספציפית במסוף, אפשר לראות את המפתחות המותאמים אישית שמשויכים לכל אירוע (בכרטיסיית המשנה Keys) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (בתפריט Filter שבחלק העליון של הדף).
אם קוראים לה כמה פעמים, ערכים חדשים של מפתחות קיימים יעדכנו את הערך, ורק הערך העדכני ביותר יתועד כשמתועדת קריסה.
Crashlytics.SetCustomKey(string key, string value);
הוספת הודעות מותאמות אישית ביומן
כדי לקבל יותר הקשר לגבי האירועים שמובילים לקריסה, אתם יכולים להוסיף לאפליקציה יומני Crashlytics בהתאמה אישית. מערכת Crashlytics משייכת את היומנים לנתוני הקריסה ומציגה אותם בכרטיסייה יומנים כשאתם צופים בפרטי הבעיה (כל הבעיות מוצגות במרכז הבקרה של DevOps ומעורבות > Crashlytics במסוף Firebase).
Crashlytics.Log(string message);
הגדרת מזהי משתמשים
אתם יכולים להשתמש במספר מזהה, באסימון או בערך גיבוב (hash) כדי לזהות באופן ייחודי את משתמש הקצה של האפליקציה, בלי לחשוף או להעביר את הפרטים האישיים שלו. אפשר גם למחוק את הערך על ידי הגדרת מחרוזת ריקה. הערך הזה מוצג כשצופים בקריסה ספציפית במרכז הבקרה של Crashlytics DevOps & Engagement במסוף 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 אחרות, ומאפשרת לכם לדעת אם הבעיה היא חלק ממגמה רחבה יותר. במקרים רבים, התכונה "תובנות לגבי קריסות" אפילו מספקת מקורות מידע שיעזרו לכם לנפות באגים בקריסה.
התכונה "תובנות לגבי קריסות" משתמשת בנתוני קריסות נצברים כדי לזהות מגמות נפוצות שקשורות ליציבות. אם אתם מעדיפים לא לשתף את נתוני האפליקציה, אתם יכולים לבטל את ההצטרפות ל-Crash Insights דרך התפריט Crash Insights שמופיע בחלק העליון של רשימת הבעיות ב Crashlyticsמרכז הבקרה של בקטע DevOps & Engagement במסוף Firebase.
השלבים הבאים
- ייצוא הנתונים אל BigQuery או אל Cloud Logging לצורך ניתוח מתקדם ושימוש בתכונות כמו שאילתות על הנתונים, יצירת מרכזי בקרה בהתאמה אישית והגדרת התראות בהתאמה אישית.