בלוח הבקרה Crashlytics, אפשר ללחוץ על בעיה כדי לקבל דוח אירועים מפורט. אתם יכולים להתאים אישית את הדוחות האלה כדי לעזור לכם להבין טוב יותר מה קורה באפליקציה ואת הנסיבות של האירועים שדווחו ל-Crashlytics.
מגדירים לאפליקציה רישום של מפתחות מותאמים אישית, הודעות מותאמות אישית ביומן ומזהי משתמשים.
דיווח על חריגים לCrashlytics.
קבלת יומני ניווט באופן אוטומטי אם האפליקציה משתמשת Firebase SDK for Google Analytics. היומנים האלה מאפשרים לכם לראות פעולות של המשתמשים שהובילו לאירוע שנאסף Crashlytics באפליקציה.
ולכבות את הדיווח האוטומטי על קריסות להפעיל דיווח על הבעת הסכמה עבור המשתמשים. שימו לב, על ידי כברירת מחדל, Crashlytics אוסף דוחות קריסה באופן אוטומטי משתמשי האפליקציה.
הוספת מקשים בהתאמה אישית
מפתחות בהתאמה אישית עוזרים לכם לקבל את המצב הספציפי של האפליקציה שמוביל לקריסה. אפשר לשייך צמדי מפתח/ערך שרירותיים לדוחות הקריסה, ואז להשתמש את המפתחות המותאמים אישית לחיפוש ולסינון של דוחות קריסה במסוף Firebase.
במרכז הבקרה Crashlytics אפשר לחפש בעיות שתואמות למפתח מותאם אישית.
כשבודקים בעיה ספציפית במסוף, אפשר לראות מפתחות מותאמים אישית שמשויכים לכל אירוע (כרטיסיית המשנה מפתחות) ואפילו לסנן את אירועים לפי מפתחות מותאמים אישית (תפריט סינון שבחלק העליון של הדף).
משתמשים ב-method של המופע setCustomKey
כדי להגדיר צמדי מפתח/ערך. שימו לב
יש עומס יתר על setCustomKey
כדי שהפרמטר value
יוכל לקבל פקודות ראשוניות
או ארגומנט String
. הנה כמה דוגמאות:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
אפשר גם לשנות את הערך של מפתח קיים באמצעות קריאה למפתח ולהגדרה לערך אחר. לדוגמה:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
מוסיפים צמדי מפתח/ערך בכמות גדולה על ידי העברת מופע של CustomKeysAndValues
אל
ה-method setCustomKeys
של המכונה:
Kotlin+KTX
ב-Kotlin, הפונקציונליות הקיימת פשוטה יותר משימוש ב-builder CustomKeysAndValues
.
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
הוספת הודעות מותאמות אישית ביומן
כדי לקבל הקשר נוסף לגבי האירועים שהובילו לקריסה, אפשר להוסיף לאפליקציה יומני Crashlytics מותאמים אישית. Crashlytics משייך את היומנים לנתוני הקריסה ומציג אותם בדף Crashlytics במסוף Firebase, בכרטיסייה יומנים.
אפשר להשתמש ב-log
כדי לזהות בעיות. לדוגמה:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
הגדרת מזהים של משתמשים
כדי לאבחן בעיה, בדרך כלל כדאי לדעת מי מהמשתמשים שלכם נתקלו בה קריסה מסוימת. Crashlytics כולל דרך לזהות משתמשים באופן אנונימי ב- בדוחות הקריסה.
כדי להוסיף מזהי משתמשים לדוחות, צריך להקצות לכל משתמש מזהה ייחודי מספר מזהה, אסימון או ערך מגובב:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
אם תצטרכו למחוק מזהה משתמש אחרי שתגדירו אותו, תוכלו לאפס את הערך למחרוזת ריקה. ניקוי מזהה משתמש לא מסיר מזהה קיים רשומות Crashlytics. אם צריך למחוק רשומות שמשויכות למשתמש מזהה, יש לפנות לתמיכה של Firebase.
(Android NDK בלבד) הוספת מטא-נתונים לדוחות קריסה של NDK
אפשר לכלול את הכותרת crashlytics.h
בקוד C++ כדי להוסיף מטא-נתונים לדוחות קריסה של NDK, כמו מפתחות מותאמים אישית, יומנים מותאמים אישית ומזהי משתמשים. כל האפשרויות האלה מתוארות
הדף הזה שלמעלה.
crashlytics.h
זמין בתור ספריית C++ לכותרות בלבד ב-
מאגר GitHub של Firebase Android SDK.
קוראים את ההערות בקובץ הכותרת כדי לקבל הוראות לשימוש בממשקי ה-API של NDK ל-C++.
הכללת דוחות GWP-ASan לניפוי באגים בבעיות של פגיעה בזיכרון
Crashlytics יכול לעזור לכם לנפות באגים בקריות שנגרמו על ידי שגיאות זיכרון נייטיב, על ידי איסוף דוחות GWP-ASan. שגיאות שקשורות לזיכרון יכולות להיות קשורות לזיהום זיכרון באפליקציה, שהיא הסיבה העיקרית לחולשות באבטחת האפליקציה.
אפשר להציג את הנתונים האלה בדוח חדש של 'דוח קריסות של הזיכרון' Tab בזמן הלחיצה לפרטים של הבעיה Crashlytics לוח הבקרה.
אפשר גם להשתמש באות ובמסנן החדשים 'דוח GWP-ASan' כדי להציג במהירות את כל הבעיות בנתונים האלה.
תוכלו לקבל דוחות זיכרון של GWP-ASan אם להפעיל באופן מפורש את GWP-ASan באפליקציה שלך ולהשתמש ב-Crashlytics SDK עבור NDK גרסה 18.3.6 ואילך (Firebase BoM גרסה 31.3.0 ואילך). אפשר לבדוק את ההגדרה של GWP-ASan באמצעות קוד נייטיב לדוגמה במסמכי התיעוד של Android.
דיווח על חריגות לא קטלניות
בנוסף לדיווח אוטומטי על קריסות באפליקציה, Crashlytics מאפשרת לתעד חריגות לא קטלניות ולשלוח אותן בפעם הבאה שהאפליקציה מופעלת.
משתמשים בשיטה recordException
כדי לתעד חריגות לא קטלניות בבלוק catch
של האפליקציה. לדוגמה:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
כל החריגים שנרשמו מופיעים כבעיות לא חמורות במסוף Firebase. סיכום הבעיה מכיל את כל המידע על מדינה שבדרך כלל אתם מקבלים ממנו קריסות, לצד פירוט לפי גרסת Android ומכשיר חומרה.
Crashlytics מעבד חריגים בשרשור ייעודי ברקע לצורך לצמצם את ההשפעה על הביצועים של האפליקציה. כדי לצמצם את הרשת של המשתמשים תנועה, Crashlytics קבוצות תועדו חריגים יחד ושולחות להם את בפעם הבאה שהאפליקציה תופעל.
אחזור יומני נתיבי ניווט
יומני נתיב הניווט עוזרים לכם להבין טוב יותר את האינטראקציות של משתמש עם האפליקציה שלכם עד לתאונה, לאירוע לא קטלני או לאירוע ANR. היומנים האלה יכולים שימושיים כשמנסים לשחזר את הבעיה ולנפות באגים.
יומני מיקומים באתר מופעלים על ידי Google Analytics, לכן כדי לקבל יומני מיקומים באתר, צריך להפעיל את Google Analytics לפרויקט Firebase שלכם הוספה של Firebase SDK for Google Analytics לאפליקציה. לאחר העמידה בדרישות האלה, יומני המיקומים באתר מתועדים באופן אוטומטי כלול בנתוני אירוע בכרטיסייה יומנים כאשר מציגים את הפרטים של בעיה.
ערכת ה-SDK Analytics
האירוע screen_view
מתעד באופן אוטומטי
שמאפשר ליומני המיקומים להציג רשימה של מסכים שהוצגו לפני
קריסה, אירוע לא חמור או אירוע ANR. יומן נתיבי ניווט screen_view
מכיל
firebase_screen_class
.
יומני המיקומים באתר מאוכלסים גם אירועים מותאמים אישית שאתם מתעדים באופן ידני במסגרת האירוע סשן, כולל נתוני הפרמטר של האירוע. הנתונים האלה יכולים לעזור להציג סדרה של פעולות משתמש שהובילו לתאונה, לאירוע ANR או לאירוע לא קטלני.
לתשומת ליבכם: אתם יכולים לשלוט באיסוף ובשימוש בנתוני Google Analytics, כולל הנתונים שמאכלסים את יומני הלחם.
הפעלת דיווח על הסכמה
כברירת מחדל, Crashlytics אוסף דוחות קריסה באופן אוטומטי לכל משתמשי האפליקציה. כדי לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, אפשר להפעיל דיווח על הסכמה מפורשת על ידי השבתת הדיווח האוטומטי ושליחת נתונים אל Crashlytics רק כשבוחרים בכך בקוד:
כדי להשבית את האיסוף האוטומטי, מוסיפים את התג
meta-data
בבלוקapplication
בקובץAndroidManifest.xml
:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
כדי להפעיל את האיסוף למשתמשים נבחרים, צריך להפעיל את ההחרגה של איסוף הנתונים Crashlytics בזמן הריצה. ערך ההחרגה נשמר בכל ההפעלות של האפליקציה, כדי ש-Crashlytics יוכל לאסוף דוחות באופן אוטומטי. כדי לבטל את ההסכמה של דיווח הקריסה האוטומטי, מעבירים את
false
כערך הביטול. כשההגדרה מוגדרת עדfalse
, הערך החדש לא יחול עד ההפעלה הבאה של האפליקציה.Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
ניהול הנתונים של 'תובנות לגבי הקריסה'
התכונה 'תובנות לגבי קריסות' עוזרת לכם לפתור בעיות על ידי השוואה של נתוני המעקב אחרי סטאק (stack) שהוסרו מהם פרטי הזיהוי לנתוני מעקב מאפליקציות אחרות ב-Firebase, ומציינת אם הבעיה היא חלק ממגמה רחבה יותר. הכלי 'תובנות לגבי הקריסה' מספק משאבים לבעיות רבות כדי לעזור לכם לנפות את הבאגים שגרמו לקריסה.
התכונה 'תובנות לגבי הקריסה' משתמשת בנתוני קריסות נצברים כדי לזהות מגמות יציבות נפוצות. אם אתם לא רוצים לשתף את נתוני האפליקציה, תוכלו לבטל את ההסכמה לשימוש בתכונה 'תובנות לגבי קריסות' בתפריט תובנות לגבי קריסות בחלק העליון של רשימת הבעיות Crashlytics במסוף Firebase.