מדריך זה מתאר כיצד להתאים אישית את דוחות הקריסה שלך באמצעות Firebase Crashlytics SDK. כברירת מחדל, Crashlytics אוספת אוטומטית דוחות קריסה עבור כל משתמשי האפליקציה שלך (אתה יכול לבטל את הדיווח האוטומטי על קריסה ולהפעיל דיווח הסכמה עבור המשתמשים שלך במקום זאת). Crashlytics מספקת ארבעה מנגנוני רישום מחוץ לקופסה: מפתחות מותאמים אישית , יומנים מותאמים אישית , מזהי משתמש וחריגים שנתפסו .
הוסף מפתחות מותאמים אישית
מפתחות מותאמים אישית עוזרים לך לקבל את המצב הספציפי של האפליקציה שלך לקראת קריסה. אתה יכול לשייך צמדי מפתח/ערך שרירותיים לדוחות הקריסה שלך, ולאחר מכן להשתמש במפתחות המותאמים אישית כדי לחפש ולסנן דוחות קריסה במסוף Firebase.
בלוח המחוונים של Crashlytics , תוכל לחפש בעיות התואמות למפתח מותאם אישית.
כאשר אתה בודק בעיה ספציפית במסוף, אתה יכול להציג את המפתחות המותאמים אישית המשויכים לכל אירוע (כרטיסיית המשנה Keys ) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (תפריט סינון בראש העמוד).
השתמש בשיטת המופע 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
לשיטת המופע setCustomKeys
:
Kotlin+KTX
עבור Kotlin, הפונקציונליות הקיימת פשוטה יותר משימוש בבונה 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 .
קרא את ההערות בקובץ הכותרות לקבלת הוראות לשימוש בממשקי NDK C++ API.
כלול דוחות GWP-ASan לאיתור באגים בבעיות פגמים בזיכרון
Crashlytics יכול לעזור לך לנפות באגים קריסות הנגרמות על ידי שגיאות זיכרון מקורי על ידי איסוף דוחות GWP-ASan. שגיאות אלו הקשורות לזיכרון יכולות להיות קשורות לפגיעה בזיכרון באפליקציה שלך, שהיא הגורם המוביל לפרצות אבטחת האפליקציה.
אתה יכול להציג נתונים אלה בכרטיסייה חדשה של "מעקב אחר מחסנית זיכרון" כאשר אתה לוחץ על פרטי בעיה בלוח המחוונים של Crashlytics .
אתה יכול גם להשתמש באות ובמסנן החדש "GWP-ASan report" כדי להציג במהירות את כל הבעיות בנתונים אלה.
אתה יכול לקבל דוחות זיכרון GWP-ASan אם אתה מפעיל במפורש GWP-ASan באפליקציה שלך ומשתמש ב-Crashlytics SDK עבור NDK v18.3.6+ (Firebase BoM v31.3.0+). אתה יכול לבדוק את הגדרת GWP-ASan שלך באמצעות הקוד המקורי לדוגמה בתיעוד אנדרואיד .
דווח על חריגים לא קטלניים
בנוסף לדיווח אוטומטי על קריסות האפליקציה שלך, 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. סיכום הבעיה מכיל את כל מידע המצב שאתה מקבל בדרך כלל מקריסות, יחד עם תקלות לפי גרסת אנדרואיד ומכשיר חומרה.
Crashlytics מעבד חריגים על שרשור רקע ייעודי כדי למזער את השפעת הביצועים על האפליקציה שלך. כדי להפחית את תעבורת הרשת של המשתמשים שלך, Crashlytics מקבץ חריגים מתועדים יחד ושולח אותם בפעם הבאה שהאפליקציה מופעלת.
אפשר דיווח על הסכמה
כברירת מחדל, Crashlytics אוספת אוטומטית דוחות קריסה עבור כל משתמשי האפליקציה שלך. כדי לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, תוכל להפעיל דיווח על הסכמה על ידי השבתת הדיווח האוטומטי ושליחת נתונים ל-Crashlytics רק כאשר תבחר בקוד שלך:
בבלוק
application
של קובץAndroidManifest.xml
שלך, הוסף תגmeta-data
כדי לכבות את האיסוף האוטומטי:<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);
נהל נתוני Crash Insights
Crash Insights עוזר לך לפתור בעיות על ידי השוואת מעקבי הערימה האנונימיים שלך לעקבות מאפליקציות Firebase אחרות ומודיע לך אם הבעיה שלך היא חלק ממגמה גדולה יותר. עבור בעיות רבות, Crash Insights אפילו מספק משאבים שיעזרו לך לנפות באגים בקריסה.
Crash Insights משתמש בנתוני קריסה מצטברים כדי לזהות מגמות יציבות נפוצות. אם אתה מעדיף לא לשתף את נתוני האפליקציה שלך, תוכל לבטל את הסכמתך ל-Cash Insights מתפריט Crash Insights בראש רשימת הבעיות של Crashlytics במסוף Firebase .