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

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


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

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

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

پیکربندی خود را برای بارگذاری فایل‌های 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 به مراحل ساخت هدف «اجراکننده» اضافه شده است یا نه.

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

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

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

مطمئن شوید که پروژه شما از پیکربندی نسخه توصیه‌شده (Flutter 3.12.0+ و Crashlytics افزایه Flutter 3.3.4+) استفاده می‌کند تا پروژه شما بتواند به‌طور خودکار نمادهای 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) استفاده می‌کند، برای نمایش ردیابی پشته خوانا برای برنامه‌تان، مراحل اضافی لازم است.

برای بارگذاری نمادهای اشکال‌زدایی Flutter، از Firebase CLI (نسخه ۱۱.۹.۰ و بالاتر) استفاده کنید. باید نمادهای اشکال‌زدایی را قبل‌از گزارش خرابی از ساخت کد مبهم‌سازی‌شده بارگذاری کنید.

از فهرست راهنمای ریشه پروژه 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 برای عیب‌یابی گزارش‌های مبهم‌سازی‌شده مراجعه کنید.