| انتخاب پلاتفرم: | iOS+ Android Web Flutter Unity |
بهطور پیشفرض، Firebase Crashlytics بهطور خودکار پروژه Flutter شما را ابزاربندی میکند تا فایلهای نماد لازم را بارگذاری کند و مطمئن شود گزارشهای خرابی ابهامزدایی شده و قابلخواندن برای انسان هستند.
متأسفانه مواردی وجود دارد که میتواند منجر به پیکربندی نشدن کامل پروژه شود. این راهنما توضیح میدهد که خودکارسازی چه کاری انجام میدهد و اولین مراحل اشکالزدایی راهاندازی پروژه را ارائه میدهد.
پلاتفرمهای Apple
پیکربندیتان را برای بارگذاری فایلهای dSYM بررسی کنید
با افزودن افزایه Flutter Crashlytics و اجرای فرمان flutterfire configure، تلاش میشود تا یک اسکریپت اجرا به فضای کاری Xcode پروژه شما اضافه شود که فایلهای نماد dSYM لازم را پیدا و در Crashlytics بارگذاری میکند. بدون این فایلها، هشدار «dSYM موجود نیست» را در داشبورد Crashlytics خواهید دید و استثناها تا زمانی که فایلهای موجود نیست بارگذاری شوند، توسط پسزمینه نگهداری خواهند شد.
اگر این مشکل را دارید، ابتدا مطمئن شوید که اسکریپت اجرا را نصب کردهاید:
فایل فضای کاری Xcode را در فهرست راهنمای iOS پروژه (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace) پیدا و باز کنید.بررسی کنید که آیا اسکریپت اجرایی با عنوان
[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 برای عیبیابی گزارشهای مبهم مراجعه کنید.