התחל עם Firebase Crashlytics

התחלה מהירה זו מתארת ​​כיצד להגדיר את Firebase Crashlytics באפליקציה שלך עם הפלאגין Crashlytics Flutter, כך שתוכל לקבל דוחות קריסה מקיפים במסוף Firebase.

הגדרת Crashlytics כרוכה בשימוש גם בכלי שורת הפקודה וגם ב-IDE שלך. כדי לסיים את ההגדרה, תצטרך לאלץ לזרוק חריג בדיקה כדי לשלוח את דוח הקריסה הראשון שלך ל-Firebase.

לפני שאתה מתחיל

  1. אם עדיין לא עשית זאת, הגדר ואתחל את Firebase בפרויקט Flutter שלך.

  2. מומלץ : כדי לקבל אוטומטית יומני פירורי לחם כדי להבין את פעולות המשתמש המובילות לקריסה, לא קטלנית או אירוע ANR, עליך להפעיל את Google Analytics בפרויקט Firebase שלך.

    • אם בפרויקט Firebase הקיים שלך לא מופעל Google Analytics, תוכל להפעיל את Google Analytics מהכרטיסייה אינטגרציות של > הגדרות פרויקט במסוף Firebase.

    • אם אתה יוצר פרויקט Firebase חדש, הפעל את Google Analytics במהלך תהליך העבודה של יצירת הפרויקט.

    שים לב שיומני פירורי לחם זמינים עבור כל פלטפורמות אנדרואיד ואפל הנתמכות על ידי Crashlytics (למעט watchOS).

שלב 1 : הוסף Crashlytics לפרויקט Flutter שלך

  1. מהשורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה כדי להתקין את הפלאגין Flutter עבור Crashlytics.

    כדי לנצל את יומני פירורי הלחם , הוסף גם את הפלאגין Flutter עבור Google Analytics לאפליקציה שלך. ודא ש- Google Analytics מופעל בפרויקט Firebase שלך.

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. מספריית השורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה:

    flutterfire configure
    

    הפעלת פקודה זו מבטיחה שתצורת ה-Firebase של אפליקציית Flutter שלך מעודכנת, ועבור אנדרואיד, מוסיפה לאפליקציה שלך את הפלאגין Crashlytics Gradle הנדרש.

  3. לאחר השלמת, בנה מחדש את פרויקט Flutter שלך:

    flutter run
    
  4. (אופציונלי) אם פרויקט Flutter שלך משתמש בדגל --split-debug-info (ואופציונלי, גם בדגל --obfuscate ), נדרשים שלבים נוספים כדי להציג עקבות ערימה קריאות עבור האפליקציות שלך.

    • פלטפורמות אפל: ודא שהפרויקט שלך משתמש בתצורת הגרסה המומלצת (Flutter 3.12.0+ ו-Crashlytics Flutter plugin 3.3.4+) כך שהפרויקט שלך יוכל ליצור ולהעלות אוטומטית סמלי Flutter (קבצי dSYM) ל-Crashlytics.

    • אנדרואיד: השתמש ב- Firebase CLI (v.11.9.0+) כדי להעלות סמלי ניפוי באגים של Flutter. עליך להעלות את סמלי ניפוי הבאגים לפני דיווח על קריסה מבניית קוד מעורפל.

      מספריית השורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : מזהה אפליקציית Firebase Android שלך (לא שם החבילה שלך)
        מזהה אפליקציה ל-Android של Firebase לדוגמה: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : אותה ספרייה שאתה מעביר לדגל --split-debug-info בעת בניית היישום

שלב 2 : הגדר מטפלי קריסה

אתה יכול לתפוס אוטומטית את כל השגיאות שנזרקות במסגרת Flutter על ידי דריסת FlutterError.onError עם FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

כדי לתפוס שגיאות אסינכרוניות שאינן מטופלות על ידי המסגרת של Flutter, השתמש ב- PlatformDispatcher.instance.onError :

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

לדוגמאות לטיפול בסוגים אחרים של שגיאות, ראה התאמה אישית של דוחות קריסה .

שלב 3 : כפה קריסת בדיקה כדי לסיים את ההגדרה

כדי לסיים את הגדרת Crashlytics ולראות נתונים ראשוניים בלוח המחוונים של Crashlytics של קונסולת Firebase, עליך לאלץ לזרוק חריג בדיקה.

  1. הוסף קוד לאפליקציה שלך שבו תוכל להשתמש כדי לאלץ לזרוק חריג בדיקה.

    אם הוספת מטפל בשגיאות שקורא ל- FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) ל- Zone ברמה העליונה, תוכל להשתמש בקוד הבא כדי להוסיף לחצן לאפליקציה שלך, שכאשר לוחצים עליו, זורק חריג מבחן:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. בנה והפעל את האפליקציה שלך.

  3. הכריח את חריג הבדיקה להיזרק כדי לשלוח את הדוח הראשון של האפליקציה שלך:

    1. פתח את האפליקציה שלך ממכשיר הבדיקה או האמולטור שלך.

    2. באפליקציה שלך, לחץ על לחצן חריג הבדיקה שהוספת באמצעות הקוד שלמעלה.

  4. עבור אל לוח המחוונים של Crashlytics של מסוף Firebase כדי לראות את קריסת המבחן שלך.

    אם רענן את המסוף ואתה עדיין לא רואה את קריסת הבדיקה לאחר חמש דקות, הפעל רישום באגים כדי לראות אם האפליקציה שלך שולחת דוחות קריסה.


וזה הכל! Crashlytics עוקבת כעת אחר האפליקציה שלך לאיתור קריסות וב-Android, שגיאות לא קטלניות ומקרי ANR. בקר במרכז השליטה של ​​Crashlytics כדי להציג ולחקור את כל הדוחות והסטטיסטיקות שלך.

הצעדים הבאים

,

התחלה מהירה זו מתארת ​​כיצד להגדיר את Firebase Crashlytics באפליקציה שלך עם הפלאגין Crashlytics Flutter, כך שתוכל לקבל דוחות קריסה מקיפים במסוף Firebase.

הגדרת Crashlytics כרוכה בשימוש גם בכלי שורת הפקודה וגם ב-IDE שלך. כדי לסיים את ההגדרה, תצטרך לאלץ לזרוק חריג בדיקה כדי לשלוח את דוח הקריסה הראשון שלך ל-Firebase.

לפני שאתה מתחיל

  1. אם עדיין לא עשית זאת, הגדר ואתחל את Firebase בפרויקט Flutter שלך.

  2. מומלץ : כדי לקבל אוטומטית יומני פירורי לחם כדי להבין את פעולות המשתמש המובילות לקריסה, לא קטלנית או אירוע ANR, עליך להפעיל את Google Analytics בפרויקט Firebase שלך.

    • אם בפרויקט Firebase הקיים שלך לא מופעל Google Analytics, תוכל להפעיל את Google Analytics מהכרטיסייה אינטגרציות של > הגדרות פרויקט במסוף Firebase.

    • אם אתה יוצר פרויקט Firebase חדש, הפעל את Google Analytics במהלך תהליך העבודה של יצירת הפרויקט.

    שים לב שיומני פירורי לחם זמינים עבור כל פלטפורמות אנדרואיד ואפל הנתמכות על ידי Crashlytics (למעט watchOS).

שלב 1 : הוסף Crashlytics לפרויקט Flutter שלך

  1. מהשורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה כדי להתקין את הפלאגין Flutter עבור Crashlytics.

    כדי לנצל את יומני פירורי הלחם , הוסף גם את הפלאגין Flutter עבור Google Analytics לאפליקציה שלך. ודא ש- Google Analytics מופעל בפרויקט Firebase שלך.

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. מספריית השורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה:

    flutterfire configure
    

    הפעלת פקודה זו מבטיחה שתצורת ה-Firebase של אפליקציית Flutter שלך מעודכנת, ועבור אנדרואיד, מוסיפה לאפליקציה שלך את הפלאגין Crashlytics Gradle הנדרש.

  3. לאחר השלמת, בנה מחדש את פרויקט Flutter שלך:

    flutter run
    
  4. (אופציונלי) אם פרויקט Flutter שלך משתמש בדגל --split-debug-info (ואופציונלי, גם בדגל --obfuscate ), נדרשים שלבים נוספים כדי להציג עקבות ערימה קריאות עבור האפליקציות שלך.

    • פלטפורמות אפל: ודא שהפרויקט שלך משתמש בתצורת הגרסה המומלצת (Flutter 3.12.0+ ו-Crashlytics Flutter plugin 3.3.4+) כך שהפרויקט שלך יוכל ליצור ולהעלות אוטומטית סמלי Flutter (קבצי dSYM) ל-Crashlytics.

    • אנדרואיד: השתמש ב- Firebase CLI (v.11.9.0+) כדי להעלות סמלי ניפוי באגים של Flutter. עליך להעלות את סמלי ניפוי הבאגים לפני דיווח על קריסה מבניית קוד מעורפל.

      מספריית השורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : מזהה אפליקציית Firebase Android שלך (לא שם החבילה שלך)
        מזהה אפליקציה ל-Android של Firebase לדוגמה: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : אותה ספרייה שאתה מעביר לדגל --split-debug-info בעת בניית היישום

שלב 2 : הגדר מטפלי קריסה

אתה יכול לתפוס אוטומטית את כל השגיאות שנזרקות במסגרת Flutter על ידי דריסת FlutterError.onError עם FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

כדי לתפוס שגיאות אסינכרוניות שאינן מטופלות על ידי המסגרת של Flutter, השתמש ב- PlatformDispatcher.instance.onError :

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

לדוגמאות לטיפול בסוגים אחרים של שגיאות, ראה התאמה אישית של דוחות קריסה .

שלב 3 : כפה קריסת בדיקה כדי לסיים את ההגדרה

כדי לסיים את הגדרת Crashlytics ולראות נתונים ראשוניים בלוח המחוונים של Crashlytics של קונסולת Firebase, עליך לאלץ לזרוק חריג בדיקה.

  1. הוסף קוד לאפליקציה שלך שבו תוכל להשתמש כדי לאלץ לזרוק חריג בדיקה.

    אם הוספת מטפל בשגיאות שקורא ל- FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) ל- Zone ברמה העליונה, תוכל להשתמש בקוד הבא כדי להוסיף לחצן לאפליקציה שלך, שכאשר לוחצים עליו, זורק חריג מבחן:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. בנה והפעל את האפליקציה שלך.

  3. הכריח את חריג הבדיקה להיזרק כדי לשלוח את הדוח הראשון של האפליקציה שלך:

    1. פתח את האפליקציה שלך ממכשיר הבדיקה או האמולטור שלך.

    2. באפליקציה שלך, לחץ על לחצן חריג הבדיקה שהוספת באמצעות הקוד שלמעלה.

  4. עבור אל לוח המחוונים של Crashlytics של מסוף Firebase כדי לראות את קריסת המבחן שלך.

    אם רענן את המסוף ואתה עדיין לא רואה את קריסת הבדיקה לאחר חמש דקות, הפעל רישום באגים כדי לראות אם האפליקציה שלך שולחת דוחות קריסה.


וזה הכל! Crashlytics עוקבת כעת אחר האפליקציה שלך לאיתור קריסות וב-Android, שגיאות לא קטלניות ומקרי ANR. בקר במרכז השליטה של ​​Crashlytics כדי להציג ולחקור את כל הדוחות והסטטיסטיקות שלך.

הצעדים הבאים