קבלת דוחות קריסה קריאים במרכז הבקרה של Crashlytics


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

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

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

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

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

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

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

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

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

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

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

חשוב לוודא שהפרויקט שלכם משתמש בהגדרות הגרסה המומלצות (Flutter 3.12.0 ואילך ופלאגין Crashlytics Flutter 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 לפתרון בעיות בדוחות מעורפלים.