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


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

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

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

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

افزودن افزونه Crashlytics Flutter و اجرای دستور flutterfire configure تلاش می‌کند تا یک اسکریپت اجرا به فضای کاری Xcode پروژه شما اضافه کند که فایل‌های نماد dSYM لازم را پیدا کرده و در Crashlytics آپلود می‌کند. بدون این فایل‌ها، هشدار "Missing dSYM" را در داشبورد Crashlytics مشاهده خواهید کرد و استثنائات تا زمان آپلود فایل‌های از دست رفته توسط backend نگه داشته می‌شوند.

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

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

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

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

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

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

مطمئن شوید که پروژه شما از پیکربندی نسخه پیشنهادی (Flutter 3.12.0+ و افزونه Crashlytics Flutter 3.3.4+) استفاده می‌کند تا پروژه شما بتواند به طور خودکار نمادهای Flutter (فایل‌های dSYM) را تولید و در Crashlytics آپلود کند.

اندروید

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

دستور flutterfire configure تلاش می‌کند تا وابستگی‌های لازم را به فایل‌های Gradle build پروژه شما اضافه کند. بدون این وابستگی‌ها، در صورت فعال بودن obfuscation، گزارش‌های خرابی در کنسول 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) برای آپلود نمادهای فلاتر استفاده می‌کنید (در صورت استفاده از پرچم --split-debug-info )

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

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

از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID : شناسه برنامه اندروید Firebase شما (نه نام بسته شما)
    مثالی از شناسه برنامه اندروید فایربیس: 1:567383003300:android:17104a2ced0c9b9b

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

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