כברירת מחדל, Firebase Crashlytics מבצע באופן אוטומטי אינסטרומנטציה בפרויקט Flutter כדי להעלות את קובצי הסמלים הנדרשים, וכך לוודא שדוחות קריסה עוברים דה-אובפוסקציה ושהם קריאים לאנשים.
לצערנו, יש מקרים שבהם הפרויקט לא מוגדר באופן מלא. במדריך הזה מוסבר מה האוטומציה עושה, ומוצגים בו השלבים הראשונים לניפוי באגים בהגדרת הפרויקט.
פלטפורמות של אפל
בדיקת ההגדרה להעלאת קובצי dSYM
הוספת הפלאגין Crashlytics Flutter והפעלת הפקודה
flutterfire configure ינסו להוסיף סקריפט הפעלה לסביבת העבודה של פרויקט Xcode, שימצא ויעלה את קובצי הסמלים dSYM הנדרשים אל Crashlytics. בלי הקבצים האלה, תופיע התראה 'חסר dSYM' בלוח הבקרה Crashlytics, והחריגים יוחזקו על ידי ה-Backend עד שהקבצים החסרים יועלו.
אם נתקלתם בבעיה הזו, קודם כל ודאו שהתקנתם את סקריפט ההרצה:
מאתרים ופותחים את קובץ סביבת העבודה של Xcode בספריית ה-iOS של הפרויקט (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
בודקים אם סקריפט הפעלה בשם
[firebase_crashlytics] Crashlytics Upload Symbols נוסף לשלבי הבנייה של יעד ההרצה.
אם הסקריפט הזה לא קיים, אפשר להוסיף אותו באופן ידני:
מאתרים את מזהה האפליקציה ב-Firebase של אפליקציית Apple. הנה שני מקומות שונים שבהם אפשר למצוא את המזהה הזה:
במסוף Firebase, עוברים אל settings > הגדרות הפרויקט.
עוברים לכרטיס האפליקציות שלך ולוחצים על האפליקציה ל-Apple ב-Firebase כדי לראות את פרטי האפליקציה, כולל מזהה האפליקציה.
בספרייה ברמה העליונה של פרויקט ה-Flutter, מחפשים את הקובץ firebase_options.dart. מזהה האפליקציה ב-Firebase לאפליקציית Apple מסומן בתווית appId.
לוחצים על add >
New Run Script Phase (שלב חדש של הפעלת תסריט).
חשוב לוודא שהשלב החדש Run Script הוא שלב הבנייה האחרון בפרויקט. אחרת, Crashlytics לא יכול לעבד את קובצי ה-dSYM בצורה תקינה.
מרחיבים את הקטע החדש Run Script.
בשדה התסריט (שנמצא מתחת לתווית Shell), מוסיפים את התסריטים הבאים להרצה.
הסקריפטים האלה מעבדים את קובצי ה-dSYM ומעלים אותם אל Crashlytics.
Xcode מחפש את קובצי הקלט האלה במיקומים שצוינו כדי לוודא שקובצי ה-build זמינים לסקריפט ההרצה. בנוסף, אם האפשרות User Script Sandboxing מופעלת, Xcode מאפשר לסקריפט ההרצה לגשת רק לקבצים שצוינו ב-Input Files.
אם תספקו את המיקום של קובצי ה-dSYM של הפרויקט, Crashlytics יוכל לעבד את קובצי ה-dSYM.
אם תספקו את המיקום של קובץ ה-build של האפליקציה שלכם, GoogleService-Info.plistCrashlytics יוכל לשייך את קובצי ה-dSYM לאפליקציה שלכם ב-Firebase.
אם תספקו את המיקום של קובץ ההפעלה של האפליקציה, סקריפט ההרצה יוכל למנוע העלאות כפולות של אותו קובץ dSYM. חשוב לדעת שקבצים בינאריים של אפליקציות לא מועלים.
מאתרים את מזהה האפליקציה ב-Firebase של אפליקציית Apple. הנה שני מקומות שונים שבהם אפשר למצוא את המזהה הזה:
במסוף Firebase, עוברים אל settings > הגדרות הפרויקט.
עוברים לכרטיס האפליקציות שלך ולוחצים על האפליקציה ל-Apple ב-Firebase כדי לראות את פרטי האפליקציה, כולל מזהה האפליקציה.
בספרייה ברמה העליונה של פרויקט ה-Flutter, מחפשים את הקובץ firebase_options.dart. מזהה האפליקציה ב-Firebase לאפליקציית Apple מסומן בתווית appId.
כשמריצים את הסקריפט 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 plugin 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, מריצים את הפקודה הבאה:
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-12-18 (שעון UTC)."],[],[]]