با Firebase Crashlytics شروع کنید

این شروع سریع نحوه راه‌اندازی Firebase Crashlytics را در برنامه خود با افزونه Crashlytics Flutter شرح می‌دهد تا بتوانید گزارش‌های خرابی جامع را در کنسول Firebase دریافت کنید.

راه اندازی Crashlytics شامل استفاده از ابزار خط فرمان و IDE شما می شود. برای تکمیل راه‌اندازی، باید یک استثنای آزمایشی برای ارسال اولین گزارش خرابی خود به Firebase ایجاد کنید.

قبل از اینکه شروع کنی

  1. اگر قبلاً این کار را نکرده اید، Firebase را در پروژه Flutter خود پیکربندی و مقداردهی اولیه کنید .

  2. توصیه می‌شود : برای دریافت خودکار گزارش‌های خرده نان برای درک اقدامات کاربر که منجر به خرابی، رویداد غیرمرگبار یا ANR می‌شود، باید Google Analytics را در پروژه Firebase خود فعال کنید.

    • اگر پروژه Firebase موجود شما Google Analytics را فعال نکرده است، می توانید Google Analytics را از برگه Integrations فعال کنید. > تنظیمات پروژه در کنسول Firebase.

    • اگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics را در جریان کار ایجاد پروژه فعال کنید.

    توجه داشته باشید که گزارش‌های سوخاری برای همه پلتفرم‌های اندروید و اپل که توسط Crashlytics پشتیبانی می‌شوند (به جز watchOS) در دسترس هستند.

مرحله 1 : Crashlytics را به پروژه Flutter خود اضافه کنید

  1. از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه Flutter برای Crashlytics اجرا کنید.

    برای بهره مندی از لاگ های خرده نان ، افزونه Flutter برای Google Analytics را نیز به برنامه خود اضافه کنید. مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است .

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:

    flutterfire configure
    

    اجرای این دستور تضمین می کند که پیکربندی Firebase برنامه Flutter شما به روز است و برای اندروید، افزونه Crashlytics Gradle مورد نیاز را به برنامه شما اضافه می کند.

  3. پس از تکمیل، پروژه Flutter خود را بازسازی کنید:

    flutter run
    
  4. (اختیاری) اگر پروژه Flutter شما از پرچم --split-debug-info (و به صورت اختیاری، همچنین پرچم --obfuscate ) استفاده می کند، مراحل بیشتری برای نمایش ردپای پشته قابل خواندن برای برنامه های شما لازم است.

    • پلتفرم‌های اپل: مطمئن شوید که پروژه شما از پیکربندی نسخه توصیه‌شده (Flutter 3.12.0+ و Crashlytics Flutter 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 شما (نه نام بسته شما)
        ID برنامه اندروید Firebase مثال: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : همان دایرکتوری که هنگام ساخت برنامه به پرچم --split-debug-info ارسال می کنید.

مرحله 2 : کنترل کننده های خرابی را پیکربندی کنید

می‌توانید به‌طور خودکار تمام خطاهایی را که در چارچوب 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، باید یک استثنای آزمایشی ایجاد کنید.

  1. کدی را به برنامه خود اضافه کنید که می توانید از آن برای ایجاد یک استثنای آزمایشی استفاده کنید.

    اگر یک کنترل کننده خطا که FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) را فراخوانی می کند به Zone سطح بالا اضافه کرده اید، می توانید از کد زیر برای افزودن دکمه ای به برنامه خود استفاده کنید که با فشار دادن، پرتاب می شود. استثنای آزمون:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. اپلیکیشن خود را بسازید و اجرا کنید.

  3. برای ارسال اولین گزارش برنامه خود، استثنای آزمایشی را اجباری کنید:

    1. برنامه خود را از دستگاه آزمایشی یا شبیه ساز خود باز کنید.

    2. در برنامه خود، دکمه استثنای تست را که با استفاده از کد بالا اضافه کردید، فشار دهید.

  4. برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.

    اگر کنسول را به‌روزرسانی کرده‌اید و بعد از پنج دقیقه هنوز خرابی آزمایشی را نمی‌بینید، ثبت اشکال‌زدایی را فعال کنید تا ببینید آیا برنامه شما گزارش‌های خرابی را ارسال می‌کند یا خیر.


و بس! Crashlytics اکنون برنامه شما را از نظر خرابی و در Android، خطاهای غیر کشنده و ANR زیر نظر دارد. از داشبورد Crashlytics دیدن کنید تا همه گزارش ها و آمار خود را مشاهده و بررسی کنید.

مراحل بعدی