دریافت گزارش‌های خرابی خوانا در داشبورد Crashlytics (فلاتر)

انتخاب پلاتفرم: iOS+ Android Flutter Unity


به‌طور پیش‌فرض، Firebase Crashlytics به‌طور خودکار پروژه Flutter شما را مجهز می‌کند تا فایل‌های نماد لازم را بارگذاری کند و اطمینان حاصل شود که گزارش‌های خرابی ابهام‌زدایی شده و برای انسان قابل‌خواندن هستند.

متأسفانه مواردی وجود دارد که می‌تواند منجر به پیکربندی نشدن کامل پروژه شود. این راهنما توضیح می‌دهد که خودکارسازی چه کاری انجام می‌دهد و اولین مراحل اشکال‌زدایی راه‌اندازی پروژه را ارائه می‌دهد.

پلاتفرم‌های Apple

پیکربندی‌تان را برای بارگذاری فایل‌های dSYM بررسی کنید

با افزودن افزایه Flutter Crashlytics و اجرای فرمان flutterfire configure، تلاش می‌شود تا اسکریپت اجرایی به فضای کاری Xcode پروژه‌تان اضافه شود که فایل‌های نماد dSYM لازم را پیدا و در Crashlytics بارگذاری می‌کند. بدون این فایل‌ها، هشدار «dSYM وجود ندارد» را در داشبورد Crashlytics خواهید دید و استثناها توسط پس‌زمینه نگه داشته می‌شوند تا زمانی که فایل‌های مفقودشده بارگذاری شوند.

اگر این مشکل را دارید، ابتدا مطمئن شوید که اسکریپت اجرا را نصب کرده‌اید:

  1. فایل فضای کاری Xcode را در فهرست راهنمای iOS پروژه خود پیدا و باز کنید (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. بررسی کنید آیا اسکریپت اجرایی با عنوان [firebase_crashlytics] Crashlytics Upload Symbols به «مراحل ساخت» هدف Runner اضافه شده است یا نه.

    برای اینکه ببینید آیا اسکریپت اجرا وجود ندارد یا اسکریپت اجرا وجود دارد، بخش مربوطه را در زیر ببینید.

پیکربندی نسخه خود را برای Flutter و Crashlytics (درصورت استفاده از پرچم --split-debug-info) بررسی کنید

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

مطمئن شوید که پروژه‌تان از پیکربندی نسخه توصیه‌شده استفاده می‌کند (Flutter نسخه ۳.۱۲.۰ و بالاتر و افزونه Flutter Crashlytics نسخه ۳.۳.۴ و بالاتر) تا پروژه‌تان بتواند به‌طور خودکار نمادهای Flutter (فایل‌های dSYM) را تولید و در Crashlytics بارگذاری کند.

Android

پیکربندی وابستگی را بررسی کنید

فرمان flutterfire configure تلاش می‌کند وابستگی‌های لازم را به فایل‌های ساخت Gradle پروژه‌تان اضافه کند. بدون این وابستگی‌ها، اگر مبهم‌سازی روشن باشد، گزارش‌های خرابی در کنسول Firebase ممکن است درنهایت مبهم‌سازی شوند.

مطمئن شوید خطوط زیر در سطح پروژه build.gradle و در سطح برنامه build.gradle وجود داشته باشد:

  • در فایل ساخت سطح پروژه (android/build.gradle)، خط زیر را بررسی کنید:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • در فایل ساخت سطح برنامه (android/app/build.gradle)، خط زیر را بررسی کنید:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

بررسی کنید که از CLI برای بارگذاری نمادهای Flutter استفاده می‌کنید (اگر از پرچم --split-debug-info استفاده می‌کنید)

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

از Firebase CLI (نسخه ۱۱.۹.۰+) برای بارگذاری نمادهای اشکال‌زدایی 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 ارسال می‌کنید

اگر مشکل برطرف نشد، به راهنمای مختص Android برای عیب‌یابی گزارش‌های مبهم مراجعه کنید.