| בחירת פלטפורמה: | iOS+ Android Android NDK Flutter Unity |
במדריך הזה מוסבר איך מתחילים להשתמש ב-Firebase Crashlytics באפליקציית Flutter.
אחרי שמגדירים את התוסף Crashlytics Flutter באפליקציה, אפשר לקבל דוחות מפורטים על קריסות במסוף Firebase.
ההגדרה של Crashlytics כוללת שימוש בכלי שורת פקודה ובסביבת הפיתוח המשולבת (IDE). כדי לסיים את ההגדרה, צריך לגרום להפעלת חריגה של בדיקה כדי לשלוח את דוח הקריסה הראשון ל-Firebase.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מגדירים ומפעילים את Firebase בפרויקט Flutter.
מומלץ: כדי לקבל באופן אוטומטי יומני נתיב ולהבין את פעולות המשתמש שהובילו לקריסה, לאירוע לא קטלני או לאירוע ANR, צריך להפעיל את Google Analytics בפרויקט Firebase.
אם אתם יוצרים פרויקט חדש ב-Firebase, זכרו להפעיל את Google Analytics לפני שתסיימו ליצור את הפרויקט.
אם אתם משתמשים בפרויקט קיים ב-Firebase שלא הפעלתם בו את Google Analytics, אתם יכולים להפעיל אותו בדף
Settings (הגדרות) > Integrations (שילובים) במסוף Firebase.
הערה: יומני נתיבי מיקום זמינים לכל הפלטפורמות של Android ו-Apple שנתמכות על ידי Crashlytics (חוץ מ-watchOS).
שלב 1: מוסיפים את Crashlytics לפרויקט Flutter
מהרמה הבסיסית (root) של פרויקט Flutter, מריצים את הפקודה הבאה כדי להתקין את פלאגין Flutter ל-Crashlytics.
כדי להפיק תועלת מיומני נתיבי ניווט, צריך גם להוסיף לאפליקציה את הפלאגין Flutter ל-Google Analytics. חשוב לוודא שGoogle Analytics מופעל בפרויקט ב-Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsמתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה:
flutterfire configureהפעלת הפקודה הזו מוודאת שההגדרה של Firebase באפליקציית Flutter מעודכנת, וב-Android היא מוסיפה לאפליקציה את הפלאגין הנדרש Crashlytics Gradle.
אחרי שמסיימים, בונים מחדש את פרויקט Flutter:
flutter run(אופציונלי) אם פרויקט Flutter שלכם משתמש בדגל
--split-debug-info(ואפשר גם בדגל--obfuscate), צריך לבצע שלבים נוספים כדי להציג עקבות מחסנית קריאה קריאות באפליקציות.פלטפורמות של Apple: מוודאים שהפרויקט משתמש בהגדרת הגרסה המומלצת (Flutter 3.12.0 ומעלה ו-Crashlytics Flutter plugin 3.3.4 ומעלה), כדי שהפרויקט יוכל ליצור ולהעלות באופן אוטומטי סמלים של Flutter (קבצים מסוג dSYM) אל Crashlytics.
Android: משתמשים ב-Firebase CLI (גרסה 11.9.0 ואילך) כדי להעלות סמלי ניפוי באגים של Flutter. צריך להעלות את סמלי ניפוי הבאגים לפני דיווח על קריסה מגרסת קוד שעברה טשטוש.
מתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: מזהה האפליקציה ל-Android ב-Firebase (לא שם החבילה)
דוגמה למזהה אפליקציה ל-Android ב-Firebase:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/symbols: אותה ספרייה שמעבירים לדגל--split-debug-infoכשיוצרים את האפליקציה
שלב 2: הגדרת הטיפול בקריסות
כדי לזהות אוטומטית את כל השגיאות שמוצגות ב-Flutter framework, צריך להחליף את 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 framework, משתמשים ב-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 ב-FirebasePlay Console, צריך לגרום להפעלת חריגה של בדיקה.
מוסיפים לאפליקציה קוד שאפשר להשתמש בו כדי לכפות השלכה של חריג בדיקה.
אם הוספתם ל-
Zoneברמה העליונה מטפל בשגיאות שקורא ל-FirebaseCrashlytics.instance.recordError(error, stack, fatal: true), אתם יכולים להשתמש בקוד הבא כדי להוסיף לאפליקציה כפתור שכשלוחצים עליו, מוצג חריג לבדיקה:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),יוצרים ומריצים את האפליקציה.
כדי לשלוח את הדוח הראשון של האפליקציה, צריך לגרום להפעלת חריגה בבדיקה:
פותחים את האפליקציה במכשיר הבדיקה או באמולטור.
באפליקציה, לוחצים על לחצן הבדיקה של החריגה שהוספתם באמצעות הקוד שלמעלה.
במסוף Firebase, עוברים אל DevOps & Engagement > Crashlytics dashboard כדי לבדוק אם דוח קריסת הבדיקה מופיע.
אם רעננתם את המסוף ואחרי חמש דקות עדיין לא רואים את קריסת הבדיקה, צריך להפעיל את יומן ניפוי הבאגים כדי לבדוק אם האפליקציה שולחת דוחות קריסה.
זה הכול! Crashlytics עכשיו עוקב אחרי האפליקציה שלכם כדי לזהות קריסות, וב-Android, שגיאות לא קריטיות ומקרי ANR. כדי לראות את כל הדוחות והנתונים הסטטיסטיים ולבדוק אותם, אפשר להיכנס אל לוח הבקרה של Crashlytics.
השלבים הבאים
התאמה אישית של הגדרת דוח הקריסות על ידי הוספת דיווח בהסכמה, יומנים, מפתחות ומעקב אחרי שגיאות לא קריטיות נוספות.
משלבים עם Google Play כדי שתוכלו לסנן את דוחות קריסת האפליקציה ל-Android לפי Google Play מעקב ישירות בלוח הבקרה Crashlytics. כך תוכלו להתמקד טוב יותר בגרסאות ספציפיות של האפליקציה בלוח הבקרה.
הצגת עקבות מחסנית ונתוני קריסה לצד הקוד באמצעות החלון App Quality Insights ב-Android Studio (זמין החל מגרסה Electric Eel 2022.1.1).
ייצוא הנתונים אל BigQuery או אל Cloud Logging לניתוח מתקדם ולתכונות כמו שאילתת נתונים, יצירת לוחות בקרה בהתאמה אישית והגדרת התראות בהתאמה אישית.