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