بهطور پیشفرض، Firebase Crashlytics بهطور خودکار پروژه Flutter شما را برای آپلود فایلهای نماد ضروری که اطمینان حاصل میکند گزارشهای خرابی از بین رفته و قابل خواندن توسط انسان است، ابزار میکند.
متأسفانه مواردی وجود دارد که می تواند منجر به پیکربندی کامل پروژه شود. این راهنما به تشریح کارهایی که اتوماسیون انجام می دهد و اولین گام ها برای اشکال زدایی راه اندازی پروژه شما را ارائه می دهد.
پلتفرم های اپل
پیکربندی خود را برای آپلود فایل های dSYM بررسی کنید
با افزودن پلاگین Crashlytics Flutter و اجرای دستور flutterfire configure
سعی می شود یک اسکریپت اجرا به فضای کاری Xcode پروژه شما اضافه شود که فایل های نماد dSYM لازم را پیدا کرده و در Crashlytics آپلود کند. بدون این فایلها، هشدار «DSYM گمشده» را در داشبورد Crashlytics میبینید و تا زمانی که فایلهای از دست رفته آپلود نشوند، استثناها توسط باطن نگهداری میشوند.
اگر این مشکل را دارید، ابتدا مطمئن شوید که اسکریپت اجرا را نصب کرده اید:
فایل فضای کاری Xcode را در فهرست راهنمای iOS پروژه خود (
FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace
) پیدا کرده و باز کنید.مشخص کنید که آیا یک اسکریپت اجرا با عنوان
[firebase_crashlytics] Crashlytics Upload Symbols
به فازهای ساخت هدف Runner اضافه شده است یا خیر.برای اینکه آیا اسکریپت اجرا وجود ندارد یا اسکریپت اجرا وجود دارد به بخش مربوطه زیر مراجعه کنید.
اگر این اسکریپت اجرا وجود ندارد ، می توانید آن را به صورت دستی اضافه کنید:
شناسه برنامه Firebase را برای برنامه Apple خود پیدا کنید. در اینجا دو مکان مختلف وجود دارد که می توانید این شناسه را پیدا کنید:
در کنسول Firebase ، به قسمت خود بروید
در دایرکتوری سطح بالای پروژه Flutter خود، فایل
firebase_options.dart
خود را پیدا کنید. شناسه برنامه Firebase برای برنامه Apple شما با عنوانGOOGLE_APP_ID
برچسبگذاری شده است.
روی
> مرحله اجرای جدید اسکریپت کلیک کنید.مطمئن شوید که این مرحله Run Script جدید آخرین مرحله ساخت پروژه شما است. در غیر این صورت، Crashlytics نمی تواند dSYM ها را به درستی پردازش کند.
بخش Run Script جدید را باز کنید.
در قسمت اسکریپت (که در زیر برچسب Shell قرار دارد)، اسکریپت های اجرا شده زیر را اضافه کنید.
این اسکریپت ها فایل های dSYM شما را پردازش کرده و فایل ها را در Crashlytics آپلود می کنند.
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
- FIREBASE_APP_ID : Firebase Apple App ID شما (نه Apple bundle ID)
مثال Firebase Apple ID:1:1234567890:ios:321abc456def7890
در اینجا دو روش برای یافتن شناسه برنامه Firebase وجود دارد:
در فایل
GoogleService-Info.plist
شما، شناسه برنامه شما مقدارGOOGLE_APP_ID
است. یادر کنسول Firebase ، به تنظیمات پروژه خود بروید. به سمت پایین به کارت برنامه های شما بروید، سپس روی برنامه Firebase مورد نظر کلیک کنید تا شناسه برنامه آن را پیدا کنید.
- FIREBASE_APP_ID : Firebase Apple App ID شما (نه Apple bundle ID)
در بخش Input Files ، مسیرهای مکان فایل های زیر را اضافه کنید:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
اگر اسکریپت اجرا وجود دارد، برای عیبیابی مشکلات dSYM به راهنمای اختصاصی اپل مراجعه کنید. اگر بخواهید فایل های dSYM خود را از طریق فرآیند توضیح داده شده آپلود کنید، باید مراحل اضافی زیر را انجام دهید:
شناسه برنامه Firebase را برای برنامه Apple خود پیدا کنید. در اینجا دو مکان مختلف وجود دارد که می توانید این شناسه را پیدا کنید:
در کنسول Firebase ، به قسمت خود بروید
در دایرکتوری سطح بالای پروژه Flutter خود، فایل
firebase_options.dart
خود را پیدا کنید. شناسه برنامه Firebase برای برنامه Apple شما با عنوانGOOGLE_APP_ID
برچسبگذاری شده است.
هنگام اجرای اسکریپت
upload-symbols
، از
به جای-ai FIREBASE_APPLE_APP_ID-gsp /path/to/GoogleService-Info.plist
.
پیکربندی نسخه خود را برای 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
در اینجا دو روش برای یافتن شناسه برنامه Firebase وجود دارد:
در فایل
google-services.json
، شناسه برنامه شما مقدارmobilesdk_app_id
است. یادر کنسول Firebase ، به تنظیمات پروژه خود بروید. به سمت پایین به کارت برنامه های شما بروید، سپس روی برنامه Firebase مورد نظر کلیک کنید تا شناسه برنامه آن را پیدا کنید.
PATH/TO /symbols
: همان دایرکتوری که هنگام ساخت برنامه به پرچم--split-debug-info
ارسال می کنید.
اگر مشکلات همچنان ادامه داشت، برای عیبیابی گزارشهای مبهم به راهنمای اختصاصی Android مراجعه کنید.