| בחירת פלטפורמה: | iOS+ Android Flutter Unity |
אפשר ללחוץ על בעיה כדי לראות דוח מפורט על האירוע בלוח הבקרה DevOps & Engagement (פיתוח אפליקציות ואינטראקציות) > Crashlytics במסוף Firebase. אתם יכולים להתאים אישית את הדוחות האלה כדי להבין טוב יותר מה קורה באפליקציה ואת הנסיבות שקשורות לאירועים שמדווחים ל-Crashlytics.
דיווח על caught exceptions ועל uncaught exceptions אל 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# בלוגיקה של המשחק), אפשר להגדיר את מאפיין Crashlytics.ReportUncaughtExceptionsAsFatal לערך true במקום שבו מפעילים את Crashlytics בפרויקט Unity, כדי ש-SDK של Crashlytics ידווח עליהם כאירועים קריטיים.
האירועים האלה מדווחים ל-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, אפשר לבצע את הפעולות הבאות עם הנתונים האלה:
אפשר לראות את הנתונים האלה בכרטיסייה החדשה 'Memory stack traces' (מעקב אחר הקצאת זיכרון) כשלוחצים על פרטי הבעיה.
אתם יכולים להשתמש באות ובמסנן החדשים 'דוח GWP-ASan' כדי לראות במהירות את כל הבעיות שקשורות לנתונים האלה.
אפשר לקבל דוחות זיכרון של GWP-ASan אם האפליקציה שלכם משתמשת בגרסה העדכנית ביותר של Crashlytics SDK ל-Unity (גרסה 10.7.0 ואילך) והאפשרות GWP-ASan מופעלת בה באופן מפורש (נדרש שינוי של Android App Manifest). אם יש באפליקציה קוד C++, אפשר לבדוק את ההגדרה של GWP-ASan באמצעות קוד Native לדוגמה במסמכי Android.
הוספת מפתחות בהתאמה אישית
מפתחות בהתאמה אישית עוזרים לכם לקבל את המצב הספציפי של האפליקציה לפני הקריסה. אתם יכולים לשייך צמדים שרירותיים של מפתח וערך לדוחות הקריסה, ואז להשתמש במפתחות המותאמים אישית כדי לחפש ולסנן דוחות קריסה בלוח הבקרה DevOps & Engagement > Crashlytics במסוף Firebase.
אפשר לחפש בעיות שתואמות למקש מותאם אישית.
כשבודקים בעיה ספציפית במסוף, אפשר לראות את המפתחות המותאמים אישית שמשויכים לכל אירוע (כרטיסיית המשנה מפתחות) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (התפריט מסנן בחלק העליון של הדף).
כשקוראים לפונקציה הזו כמה פעמים, ערכים חדשים של מפתחות קיימים מעדכנים את הערך, ורק הערך העדכני ביותר נשמר כשמתועד קריסה.
Crashlytics.SetCustomKey(string key, string value);
הוספת הודעות מותאמות אישית ליומן
כדי לקבל יותר הקשר לגבי האירועים שהובילו לקריסה, אפשר להוסיף Crashlyticsיומנים מותאמים אישית לאפליקציה. Crashlytics משייך את היומנים לנתוני הקריסה ומציג אותם בכרטיסייה Logs כשמציגים את פרטי הבעיה (אפשר לראות את כל הבעיות בלוח הבקרה DevOps & Engagement > Crashlytics במסוף Firebase).
Crashlytics.Log(string message);
הגדרת מזהי משתמשים
אתם יכולים להשתמש במספר מזהה, באסימון או בערך גיבוב כדי לזהות באופן ייחודי את משתמש הקצה של האפליקציה שלכם, בלי לחשוף או להעביר פרטים אישיים שלו. אפשר גם למחוק את הערך על ידי הגדרת מחרוזת ריקה. הערך הזה מוצג כשמציגים קריסה ספציפית במרכז הבקרה Crashlytics של DevOps & Engagement במסוף Firebase.
Crashlytics.SetUserId(string identifier);
קבלת יומנים של נתיבי ניווט
יומני Breadcrumb עוזרים להבין טוב יותר את האינטראקציות שהיו למשתמש עם האפליקציה לפני קריסה, אירוע לא קטלני או אירוע ANR. היומנים האלה יכולים לעזור לכם לשחזר בעיה ולנפות באגים שקשורים אליה.
היומנים של נתיבי הניווט מבוססים על Google Analytics, ולכן כדי לקבל אותם צריך להפעיל את Google Analytics בפרויקט Firebase ולהוסיף את Firebase SDK ל-Google Analytics לאפליקציה. אחרי שממלאים את הדרישות האלה, היומנים של נתיבי הניווט נכללים אוטומטית בנתוני האירועים בכרטיסייה יומנים כשמציגים את פרטי הבעיה (אפשר לראות את כל הבעיות בלוח הבקרה Crashlytics בקטע DevOps & Engagement במסוף Firebase).
ערכת ה-SDK של Analytics מתעדת באופן אוטומטי את האירוע screen_view, וכך מאפשרת לראות ביומני ה-breadcrumb רשימה של המסכים שהמשתמש צפה בהם לפני הקריסה, האירוע הלא קטלני או האירוע מסוג ANR. יומן של נתיב ניווט screen_view מכיל פרמטר firebase_screen_class.
יומני הנתיב לתצוגה גם מאוכלסים באירועים מותאמים אישית שאתם מתעדים באופן ידני במהלך הסשן של המשתמש, כולל נתוני הפרמטרים של האירוע. הנתונים האלה יכולים לעזור לכם לראות סדרה של פעולות משתמש שהובילו לקריסה, לאירוע לא קטלני או לאירוע ANR.
חשוב לדעת שאתם יכולים לשלוט באיסוף ובשימוש בנתוני Google Analytics, כולל הנתונים שמאכלסים את יומני הנתיבים.
הפעלת דיווח על הסכמה
כברירת מחדל, Crashlytics אוסף באופן אוטומטי דוחות על קריסות של כל המשתמשים באפליקציה. כדי לתת למשתמשים יותר שליטה על הנתונים שהם שולחים, אפשר לאפשר להם להביע הסכמה לשליחת דוחות על קריסות.
כדי להשבית את האיסוף האוטומטי רק למשתמשים נבחרים, צריך להפעיל את Crashlytics data collection override (החלפת הגדרות איסוף הנתונים) בזמן הריצה. ערך ההחלפה נשמר בכל ההפעלות הבאות של האפליקציה, כך ש-Crashlytics יכול לאסוף דוחות באופן אוטומטי עבור המשתמש הזה.
Crashlytics.IsCrashlyticsCollectionEnabled = true
אם המשתמש יבחר בהמשך להפסיק את איסוף הנתונים, תוכלו להעביר את הערך false כערך לביטול ברירת המחדל. הערך הזה יחול בפעם הבאה שהמשתמש יפעיל את האפליקציה, וימשיך לחול בכל ההפעלות הבאות של אותו משתמש.
ניהול נתונים ב-Crash Insights
התובנות לגבי קריסות עוזרות לכם לפתור בעיות על ידי השוואה בין עקבות מחסנית (stack traces) אנונימיים שלכם לבין עקבות מאפליקציות אחרות ב-Firebase, ומודיעות לכם אם הבעיה שלכם היא חלק ממגמה רחבה יותר. במקרים רבים, Crash Insights מספק גם מקורות מידע שיעזרו לכם לנפות באגים שגורמים לקריסה.
התכונה 'תובנות לגבי קריסות' משתמשת בנתוני קריסות מצטברים כדי לזהות מגמות נפוצות של יציבות. אם אתם לא רוצים לשתף את נתוני האפליקציה, אתם יכולים להפסיק את השתתפותכם ב-Crash Insights דרך התפריט Crash Insights בחלק העליון של רשימת הבעיות בלוח הבקרה Crashlytics של DevOps & Engagement במסוף Firebase.
השלבים הבאים
- ייצוא הנתונים אל BigQuery או אל Cloud Logging לניתוח מתקדם ולתכונות מתקדמות, כמו יצירת שאילתות על הנתונים, בניית מרכזי בקרה בהתאמה אישית והגדרת התראות מותאמות אישית.