קבלת דוחות קריסה קריאים בלוח הבקרה של Crashlytics‏ (Flutter)

בחירת פלטפורמה: iOS+‎ Android Flutter Unity


כברירת מחדל, Firebase Crashlytics מבצע אוטומטית אינסטרומנטציה בפרויקט Flutter כדי להעלות את קובצי הסמלים הנדרשים, שמבטיחים שדוחות הקריסה יהיו ברורים וקריאים לאנשים.

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

פלטפורמות של אפל

בדיקת ההגדרות להעלאת קובצי dSYM

הוספת הפלאגין Crashlytics Flutter והפעלת הפקודה flutterfire configure ינסו להוסיף סקריפט הפעלה לסביבת העבודה של פרויקט Xcode, שימצא ויעלה את קובצי הסמלים dSYM הנדרשים אל Crashlytics. בלי הקבצים האלה, תופיע התראה 'חסר dSYM' בלוח הבקרה Crashlytics, והחריגים יוחזקו על ידי ה-Backend עד שהקבצים החסרים יועלו.

אם נתקלתם בבעיה הזו, קודם כל ודאו שהתקנתם את סקריפט ההרצה:

  1. מאתרים ופותחים את קובץ סביבת העבודה של Xcode בספריית ה-iOS של הפרויקט (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. בודקים אם סקריפט הפעלה בשם [firebase_crashlytics] Crashlytics Upload Symbols נוסף לשלבי הבנייה של יעד Runner.

    בהמשך מוסבר מה קורה אם סקריפט ההפעלה לא קיים או אם סקריפט ההפעלה קיים.

בודקים את הגדרת הגרסה של Flutter ושל Crashlytics (אם משתמשים בדגל --split-debug-info)

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

חשוב לוודא שהפרויקט שלכם משתמש בהגדרת הגרסה המומלצת (Flutter 3.12.0 ומעלה וCrashlytics Flutter plugin 3.3.4 ומעלה), כדי שהפרויקט יוכל ליצור ולהעלות באופן אוטומטי סמלי Flutter (קבצי dSYM) אל Crashlytics.

Android

בדיקת הגדרות התלות

הפקודה flutterfire configure מנסה להוסיף את התלות הנדרשת לקובצי ה-build של Gradle בפרויקט. בלי התלות הזו, דוחות קריסה במסוף Firebase עשויים להיות מעורפלים אם ההסתרה מופעלת.

מוודאים שהשורות הבאות מופיעות בקובץ build.gradleברמת הפרויקט ובקובץ build.gradleברמת האפליקציה:

  • בקובץ ה-build ברמת הפרויקט (android/build.gradle), מחפשים את השורה הבאה:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • בקובץ ה-build ברמת האפליקציה (android/app/build.gradle), מחפשים את השורה הבאה:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

בודקים שאתם משתמשים ב-CLI כדי להעלות סמלי Flutter (אם משתמשים בדגל --split-debug-info)

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

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

מתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה:

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

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

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