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


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

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

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

پیکربندی خود را برای آپلود فایل های dSYM بررسی کنید

با افزودن پلاگین Crashlytics Flutter و اجرای دستور 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 3.12.0+ و Crashlytics Flutter 3.3.4+) استفاده می کند تا پروژه شما بتواند به طور خودکار نمادهای Flutter (فایل های dSYM) را در Crashlytics تولید و آپلود کند.

اندروید

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

دستور 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 (v.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 ارسال می کنید.

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