| בחירת פלטפורמה: | 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, אתם יכולים להפעיל אותו בדף
הגדרות > שילובים במסוף 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), צריך לבצע שלבים נוספים כדי להציג דוחות קריסה קריאים לאפליקציות.פלטפורמות של אפל: ודאו שהפרויקט משתמש בהגדרת הגרסה המומלצת (Flutter 3.12.0 ואילך ופלאגין Crashlytics של Flutter בגרסה 3.3.4 ואילך), כדי שהפרויקט יוכל ליצור ולהעלות באופן אוטומטי סמלים של Flutter (קובצי dSYM) אל Crashlytics.
Android: משתמשים ב-Firebase CLI (גרסה 11.9.0 ואילך) כדי להעלות סמלי ניפוי באגים של Flutter. צריך להעלות את סמלי ניפוי הבאגים לפני שמדווחים על קריסה מגרסת build של קוד מעורפל.
מתיקיית השורש של פרויקט 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: הגדרת הטיפול בקריסות
כדי לתעד באופן אוטומטי את כל השגיאות שמופיעות ב-framework של Flutter, אפשר לשנות את 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, משתמשים ב-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 במסוף Firebase, צריך לאלץ זריקה של חריגה לבדיקה.
מוסיפים לאפליקציה קוד שמאפשר לאלץ זריקה של חריגה לבדיקה.
אם הוספתם פונקציה לטיפול בשגיאות שקוראת ל-
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)ב-Zoneברמה העליונה, אתם יכולים להשתמש בקוד הבא כדי להוסיף לאפליקציה כפתור שבלחיצה עליו נזרקת חריגה לבדיקה:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),יוצרים ומריצים את האפליקציה.
כדי לשלוח את הדוח הראשון של האפליקציה, מאלצים את המערכת להקפיץ את חריגת הבדיקה:
פותחים את האפליקציה במכשיר הבדיקה או באמולטור.
באפליקציה, לוחצים על כפתור החריגה לבדיקה שהוספתם באמצעות הקוד שלמעלה.
במסוף Firebase, נכנסים לדף DevOps & Engagement (DevOps ומעורבות) > לוח הבקרה של Crashlytics כדי לבדוק את דוח הקריסה לבדיקה.
אם רעננתם את המסוף ואתם עדיין לא רואים את הקריסה לבדיקה אחרי חמש דקות, הפעילו את יומן ניפוי הבאגים כדי לבדוק אם האפליקציה שולחת דוחות קריסה.
זה הכול! עכשיו Crashlytics עוקב אחרי קריסות באפליקציה, וב-Android גם אחרי שגיאות לא קריטיות ומקרי ANR. בלוח הבקרה של Crashlytics אפשר לראות את כל הדוחות והנתונים הסטטיסטיים ולחקור אותם.
השלבים הבאים
התאמה אישית של הגדרת דוח הקריסות על ידי הוספת דיווח בהצטרפות, יומנים, מפתחות ומעקב אחר שגיאות לא קריטיות נוספות.
שילוב עם Google Play כדי לסנן את דוחות הקריסה של אפליקציית Android לפי מסלול Google Play ישירות במרכז הבקרה של Crashlytics. כך תוכלו להתמקד בגרסאות build ספציפיות בלוח הבקרה.
אפשר לראות דוחות קריסה ונתונים סטטיסטיים של קריסות לצד הקוד בחלון App Quality Insights ב-Android Studio (זמין החל מגרסת Electric Eel 2022.1.1).
ייצוא הנתונים אל BigQuery או אל Cloud Logging לניתוח מתקדם ולתכונות מתקדמות, כמו שליחת שאילתות לגבי הנתונים, יצירת לוחות בקרה בהתאמה אישית והגדרת התראות בהתאמה אישית.