קבלת דוחות קריסה קריאים במרכז הבקרה של Crashlytics
כברירת מחדל, Firebase Crashlytics מוסיף באופן אוטומטי לפרויקט ב-Flutter את הרכיבים הנדרשים להעלאת קובצי הסמלים, כדי להבטיח שדוחות קריסה יהיו קריאים לאנשים.
לצערנו, יש מקרים שבהם הפרויקט לא מוגדר באופן מלא. במדריך הזה מוסבר מה המערכת האוטומטית עושה ומפורטים השלבים הראשונים לניפוי באגים בהגדרת הפרויקט.
פלטפורמות של Apple
בדיקת ההגדרות להעלאת קובצי dSYM
הוספת הפלאגין של Flutter Crashlytics והרצת הפקודה flutterfire configure ינסו להוסיף סקריפט להפעלה לסביבת העבודה של הפרויקט ב-Xcode, שיאתר ויטפס את קובצי הסמל הדרושים של dSYM אל Crashlytics. בלי הקבצים האלה, תופיע התראה מסוג 'חסר קובץ dSYM' בלוח הבקרה של Crashlytics, והחרגות יישמרו בקצה העורפי עד להעלאת הקבצים החסרים.
אם נתקלת בבעיה הזו, קודם כל צריך לוודא שסקריפט ההפעלה מותקן:
מאתרים את קובץ סביבת העבודה של Xcode ופותחים אותו בספריית ה-iOS של הפרויקט (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
בודקים אם סקריפט ההפעלה בשם [firebase_crashlytics] Crashlytics Upload Symbols נוסף לשלבי ה-build של היעד Runner.
סקריפט ההפעלה להעלאה אוטומטית של קובצי dSYM לא קיים
אם סקריפט ההפעלה הזה לא קיים, אפשר להוסיף אותו באופן ידני:
מאתרים את מזהה האפליקציה ב-Firebase של האפליקציה ל-Apple. יש שני מקומות שונים שבהם אפשר למצוא את המזהה הזה:
במסוף Firebase, עוברים אל settings > Project settings.
גוללים למטה אל הכרטיס האפליקציות שלך ולוחצים על האפליקציה שלכם ל-Firebase ל-Apple כדי להציג את פרטי האפליקציה, כולל מזהה האפליקציה.
בספרייה ברמה העליונה של פרויקט Flutter, מחפשים את הקובץ firebase_options.dart. מזהה האפליקציה ב-Firebase של האפליקציה ל-Apple מסומן בתווית GOOGLE_APP_ID.
לוחצים על add > New Run Script Phase.
חשוב לוודא שהשלב החדש הרצת סקריפט הוא שלב ה-build האחרון של הפרויקט. אחרת, Crashlytics לא יוכל לעבד קובצי dSYM כראוי.
מרחיבים את הקטע החדש הרצת סקריפט.
בשדה הסקריפט (שנמצא מתחת לתווית Shell), מוסיפים את סקריפט ההפעלה הבא.
הסקריפטים האלה מעבדים את קובצי ה-dSYM ומעלים את הקבצים אל Crashlytics.
Xcode מחפש את קובצי הקלט האלה במיקומים שצוינו כדי לוודא שקובצי ה-build זמינים לסקריפט ההפעלה. בנוסף, אם ההגדרה User Script Sandboxing מופעלת, Xcode מאפשר לסקריפט ההפעלה לגשת רק לקבצים שצוינו בInput Files.
כדי לאפשר ל-Crashlytics לעבד קובצי dSYM, צריך לציין את המיקום של קובצי ה-dSYM בפרויקט.
אם תספקו את המיקום של קובץ GoogleService-Info.plist המאוחזר של האפליקציה, Crashlytics יוכל לשייך את קובצי ה-dSYM לאפליקציה ב-Firebase.
הצגת המיקום של קובץ ההפעלה של האפליקציה מאפשרת ל-run script למנוע העלאות כפולות של אותו קובץ dSYM. חשוב לזכור שלא מעלים קובצי בינארי של אפליקציות.
מאתרים את מזהה האפליקציה ב-Firebase של האפליקציה ל-Apple. יש שני מקומות שונים שבהם אפשר למצוא את המזהה הזה:
במסוף Firebase, עוברים אל settings > Project settings.
גוללים למטה אל הכרטיס האפליקציות שלך ולוחצים על האפליקציה שלכם ל-Firebase ל-Apple כדי להציג את פרטי האפליקציה, כולל מזהה האפליקציה.
בספרייה ברמה העליונה של פרויקט Flutter, מחפשים את הקובץ firebase_options.dart. מזהה האפליקציה ב-Firebase של האפליקציה ל-Apple מסומן בתווית GOOGLE_APP_ID.
כשמריצים את הסקריפט upload-symbols, משתמשים ב--ai FIREBASE_APPLE_APP_ID במקום ב--gsp /path/to/GoogleService-Info.plist.
בודקים את הגדרת הגרסה של 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), מחפשים את השורה הבאה:
בקובץ ה-build ברמת האפליקציה (android/app/build.gradle), מחפשים את השורה הבאה:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
מוודאים שאתם משתמשים ב-CLI כדי להעלות סמלי Flutter (אם משתמשים בדגל --split-debug-info)
אם בפרויקט Flutter שלכם נעשה שימוש בדגל --split-debug-info (ואם רוצים גם בדגל --obfuscate), צריך לבצע שלבים נוספים כדי להציג את מעקב הסטאק של האפליקציה בצורה קריא.
משתמשים ב-Firebase CLI (גרסה 11.9.0 ואילך) כדי להעלות סמלי ניפוי באגים של Flutter. צריך להעלות את סמלי ניפוי הבאגים לפני שמדווחים על קריסה מ-build של קוד מעורבב.
בתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה: