عیب یابی Crashlytics و سوالات متداول


این صفحه راهنمایی عیب‌یابی و پاسخ‌هایی به سؤالات متداول درباره استفاده از Crashlytics ارائه می‌دهد. اگر چیزی را که به دنبالش هستید پیدا نکردید یا به کمک بیشتری نیاز دارید، با پشتیبانی Firebase تماس بگیرید.

عیب یابی عمومی/سؤالات متداول

ممکن است متوجه دو قالب مختلف برای مشکلات فهرست شده در جدول مشکلات خود در کنسول Firebase شوید. و همچنین ممکن است در برخی از مشکلات خود متوجه ویژگی به نام "Variants" شوید. در اینجا دلیل است!

در اوایل سال 2023، موتور تجزیه و تحلیل بهبود یافته ای را برای گروه بندی رویدادها و همچنین طراحی به روز شده و برخی ویژگی های پیشرفته برای مسائل جدید (مانند انواع!) ارائه کردیم. برای همه جزئیات، پست اخیر وبلاگ ما را بررسی کنید، اما می توانید برای نکات مهم در زیر بخوانید.

Crashlytics همه رویدادهای برنامه شما (مانند خرابی‌ها، موارد غیرمرگبار و ANR) را تجزیه و تحلیل می‌کند و گروه‌هایی از رویدادها به نام مسائل ایجاد می‌کند — همه رویدادها در یک شماره یک نقطه شکست مشترک دارند.

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

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

در اینجا چیزی است که با این بهبودها تجربه خواهید کرد:

  • ابرداده اصلاح شده در ردیف شماره نمایش داده می شود
    اکنون درک و تریاژ مسائل در برنامه شما آسان تر شده است.

  • مسائل تکراری کمتر
    تغییر شماره خط منجر به مشکل جدیدی نمی شود.

  • اشکال زدایی آسانتر مسائل پیچیده با دلایل ریشه ای مختلف
    از انواع برای اشکال زدایی رایج ترین ردیابی پشته در یک شماره استفاده کنید.

  • هشدارها و سیگنال های معنی دار تر
    یک شماره جدید در واقع نشان دهنده یک باگ جدید است.

  • جستجوی قدرتمندتر
    هر شماره حاوی فراداده قابل جستجوی بیشتری است، مانند نوع استثنا و نام بسته.

در اینجا نحوه اجرای این بهبودها آمده است:

  • وقتی رویدادهای جدیدی را از برنامه شما دریافت می‌کنیم، بررسی می‌کنیم که آیا آنها با مشکل موجود مطابقت دارند یا خیر.

  • اگر مطابقت وجود نداشته باشد، به طور خودکار الگوریتم گروه‌بندی رویداد هوشمندانه‌تر خود را در رویداد اعمال می‌کنیم و یک مشکل جدید با طراحی ابرداده اصلاح‌شده ایجاد می‌کنیم.

این اولین به‌روزرسانی بزرگی است که ما در حال ایجاد گروه‌بندی رویداد خود هستیم. اگر بازخوردی دارید یا با مشکلی مواجه شدید، لطفاً با ارسال گزارش به ما اطلاع دهید.

اگر گزارش‌های خرده نان را نمی‌بینید، توصیه می‌کنیم پیکربندی برنامه خود را برای Google Analytics بررسی کنید. مطمئن شوید که شرایط زیر را دارید:

اگر هشدارهای سرعت را نمی بینید، مطمئن شوید که از آن استفاده می کنید

اگر معیارهای بدون خرابی (مانند کاربران و جلسات بدون خرابی) را نمی‌بینید یا معیارهای غیرقابل اعتمادی را مشاهده می‌کنید، موارد زیر را بررسی کنید:

  • مطمئن شوید که از آن استفاده می کنید

  • مطمئن شوید که تنظیمات جمع‌آوری داده‌ها بر کیفیت معیارهای بدون خرابی شما تأثیر نمی‌گذارد:

    • اگر با غیرفعال کردن گزارش خودکار خرابی، گزارش انتخاب را فعال کنید ، اطلاعات خرابی را فقط می‌توان از کاربرانی که صریحاً در جمع‌آوری داده‌ها شرکت کرده‌اند به Crashlytics ارسال کرد. بنابراین، دقت معیارهای بدون خرابی تحت تأثیر قرار خواهد گرفت زیرا Crashlytics فقط اطلاعات خرابی را از این کاربران انتخاب شده (به جای همه کاربران شما) در اختیار دارد. این بدان معنی است که معیارهای بدون خرابی شما ممکن است کمتر قابل اعتماد باشد و کمتر منعکس کننده ثبات کلی برنامه شما باشد.

    • اگر جمع‌آوری خودکار داده‌ها را غیرفعال کرده‌اید، می‌توانید از sendUnsentReports برای ارسال گزارش‌های حافظه پنهان روی دستگاه به Crashlytics استفاده کنید. استفاده از این روش، داده‌های خرابی را به Crashlytics ارسال می‌کند، اما نه داده‌های جلسات را که باعث می‌شود نمودارهای کنسول مقادیر کم یا صفر را برای معیارهای بدون خرابی نشان دهند.

به درک معیارهای بدون خرابی مراجعه کنید.

یادداشت‌ها به اعضای پروژه اجازه می‌دهند تا در مورد مسائل خاص با سؤالات، به‌روزرسانی وضعیت و غیره نظر دهند.

هنگامی که یک عضو پروژه یادداشتی را پست می کند، با ایمیل حساب Google خود برچسب گذاری می شود. این آدرس ایمیل همراه با یادداشت برای همه اعضای پروژه که به مشاهده یادداشت دسترسی دارند قابل مشاهده است.

موارد زیر دسترسی مورد نیاز برای مشاهده، نوشتن و حذف یادداشت ها را شرح می دهد:

ادغام ها

اگر پروژه شما از Crashlytics در کنار Google Mobile Ads SDK استفاده می کند، احتمالاً گزارشگران خرابی هنگام ثبت کنترل کننده های استثنا دخالت می کنند. برای رفع مشکل، با تماس با disableSDKCrashReporting ، گزارش خرابی را در SDK Mobile Ads خاموش کنید.

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

پشتیبانی از پلتفرم

مسائل پسرفته

زمانی که شما قبلاً آن را بسته اید، یک مشکل پسرفت داشته است، اما Crashlytics گزارش جدیدی دریافت می کند مبنی بر اینکه مشکل دوباره رخ داده است. Crashlytics به طور خودکار این مشکلات پسرفته را مجدداً باز می کند تا بتوانید آنها را مطابق با برنامه خود برطرف کنید.

در اینجا یک سناریوی مثال آمده است که توضیح می دهد چگونه Crashlytics یک موضوع را به عنوان یک رگرسیون طبقه بندی می کند:

  1. برای اولین بار، Crashlytics یک گزارش خرابی در مورد Crash "A" دریافت می کند. Crashlytics یک مشکل مربوط به آن خرابی را باز می کند (مساله "A").
  2. شما این اشکال را به سرعت برطرف می‌کنید، شماره A را می‌بندید و سپس نسخه جدیدی از برنامه خود را منتشر می‌کنید.
  3. Crashlytics پس از بسته شدن این موضوع، گزارش دیگری در مورد مشکل "A" دریافت می کند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics هنگام بستن مشکل از آن مطلع بوده است (به این معنی که نسخه اصلاً گزارش خرابی را برای هر خرابی ارسال کرده است)، Crashlytics این مشکل را پسرفته در نظر نخواهد گرفت. موضوع بسته خواهد ماند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics از آن اطلاعی نداشته است (به این معنی که این نسخه هرگز هیچ گزارش خرابی برای هر خرابی ارسال نکرده است)، Crashlytics مشکل را پسرفته در نظر می‌گیرد و دوباره آن را باز می‌کند.

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

اگر گزارشی از یک نسخه برنامه قدیمی است که در هنگام بسته شدن مشکل، هیچ گزارش خرابی ارسال نکرده است، Crashlytics مشکل را پسرفته می‌داند و دوباره آن را باز می‌کند.

این وضعیت می‌تواند در شرایط زیر اتفاق بیفتد: شما یک اشکال را برطرف کرده‌اید و نسخه جدیدی از برنامه خود را منتشر کرده‌اید، اما همچنان کاربرانی در نسخه‌های قدیمی‌تر بدون رفع اشکال دارید. اگر به‌طور تصادفی، یکی از آن نسخه‌های قدیمی‌تر هیچ‌وقت هیچ گزارش خرابی ارسال نکرده بود، و آن کاربران شروع به مواجهه با باگ کردند، آن گزارش‌های خرابی باعث ایجاد یک مشکل پسرفته می‌شوند.

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

،


این صفحه راهنمایی عیب‌یابی و پاسخ‌هایی به سؤالات متداول درباره استفاده از Crashlytics ارائه می‌دهد. اگر چیزی را که به دنبالش هستید پیدا نکردید یا به کمک بیشتری نیاز دارید، با پشتیبانی Firebase تماس بگیرید.

عیب یابی عمومی/سؤالات متداول

ممکن است متوجه دو قالب مختلف برای مشکلات فهرست شده در جدول مشکلات خود در کنسول Firebase شوید. و همچنین ممکن است در برخی از مشکلات خود متوجه ویژگی به نام "Variants" شوید. در اینجا دلیل است!

در اوایل سال 2023، موتور تجزیه و تحلیل بهبود یافته ای را برای گروه بندی رویدادها و همچنین طراحی به روز شده و برخی ویژگی های پیشرفته برای مسائل جدید (مانند انواع!) ارائه کردیم. برای همه جزئیات، پست اخیر وبلاگ ما را بررسی کنید، اما می توانید برای نکات مهم در زیر بخوانید.

Crashlytics همه رویدادهای برنامه شما (مانند خرابی‌ها، موارد غیرمرگبار و ANR) را تجزیه و تحلیل می‌کند و گروه‌هایی از رویدادها به نام مسائل ایجاد می‌کند — همه رویدادها در یک شماره یک نقطه شکست مشترک دارند.

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

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

در اینجا چیزی است که با این بهبودها تجربه خواهید کرد:

  • ابرداده اصلاح شده در ردیف شماره نمایش داده می شود
    اکنون درک و تریاژ مسائل در برنامه شما آسان تر شده است.

  • مسائل تکراری کمتر
    تغییر شماره خط منجر به مشکل جدیدی نمی شود.

  • اشکال زدایی آسانتر مسائل پیچیده با دلایل ریشه ای مختلف
    از انواع برای اشکال زدایی رایج ترین ردیابی پشته در یک شماره استفاده کنید.

  • هشدارها و سیگنال های معنی دار تر
    یک شماره جدید در واقع نشان دهنده یک باگ جدید است.

  • جستجوی قدرتمندتر
    هر شماره حاوی فراداده قابل جستجوی بیشتری است، مانند نوع استثنا و نام بسته.

در اینجا نحوه اجرای این بهبودها آمده است:

  • وقتی رویدادهای جدیدی را از برنامه شما دریافت می‌کنیم، بررسی می‌کنیم که آیا آنها با مشکل موجود مطابقت دارند یا خیر.

  • اگر مطابقت وجود نداشته باشد، به طور خودکار الگوریتم گروه‌بندی رویداد هوشمندانه‌تر خود را در رویداد اعمال می‌کنیم و یک مشکل جدید با طراحی ابرداده اصلاح‌شده ایجاد می‌کنیم.

این اولین به‌روزرسانی بزرگی است که ما در حال ایجاد گروه‌بندی رویداد خود هستیم. اگر بازخوردی دارید یا با مشکلی مواجه شدید، لطفاً با ارسال گزارش به ما اطلاع دهید.

اگر گزارش‌های خرده نان را نمی‌بینید، توصیه می‌کنیم پیکربندی برنامه خود را برای Google Analytics بررسی کنید. مطمئن شوید که شرایط زیر را دارید:

اگر هشدارهای سرعت را نمی بینید، مطمئن شوید که از آن استفاده می کنید

اگر معیارهای بدون خرابی (مانند کاربران و جلسات بدون خرابی) را نمی‌بینید یا معیارهای غیرقابل اعتمادی را مشاهده می‌کنید، موارد زیر را بررسی کنید:

  • مطمئن شوید که از آن استفاده می کنید

  • مطمئن شوید که تنظیمات جمع‌آوری داده‌ها بر کیفیت معیارهای بدون خرابی شما تأثیر نمی‌گذارد:

    • اگر با غیرفعال کردن گزارش خودکار خرابی، گزارش انتخاب را فعال کنید ، اطلاعات خرابی را فقط می‌توان از کاربرانی که صریحاً در جمع‌آوری داده‌ها شرکت کرده‌اند به Crashlytics ارسال کرد. بنابراین، دقت معیارهای بدون خرابی تحت تأثیر قرار خواهد گرفت زیرا Crashlytics فقط اطلاعات خرابی را از این کاربران انتخاب شده (به جای همه کاربران شما) در اختیار دارد. این بدان معنی است که معیارهای بدون خرابی شما ممکن است کمتر قابل اعتماد باشد و کمتر منعکس کننده ثبات کلی برنامه شما باشد.

    • اگر جمع‌آوری خودکار داده‌ها را غیرفعال کرده‌اید، می‌توانید از sendUnsentReports برای ارسال گزارش‌های حافظه پنهان روی دستگاه به Crashlytics استفاده کنید. استفاده از این روش، داده‌های خرابی را به Crashlytics ارسال می‌کند، اما نه داده‌های جلسات را که باعث می‌شود نمودارهای کنسول مقادیر کم یا صفر را برای معیارهای بدون خرابی نشان دهند.

به درک معیارهای بدون خرابی مراجعه کنید.

یادداشت‌ها به اعضای پروژه اجازه می‌دهند تا در مورد مسائل خاص با سؤالات، به‌روزرسانی وضعیت و غیره نظر دهند.

هنگامی که یک عضو پروژه یادداشتی را پست می کند، با ایمیل حساب Google خود برچسب گذاری می شود. این آدرس ایمیل همراه با یادداشت برای همه اعضای پروژه که به مشاهده یادداشت دسترسی دارند قابل مشاهده است.

موارد زیر دسترسی مورد نیاز برای مشاهده، نوشتن و حذف یادداشت ها را شرح می دهد:

ادغام ها

اگر پروژه شما از Crashlytics در کنار Google Mobile Ads SDK استفاده می کند، احتمالاً گزارشگران خرابی هنگام ثبت کنترل کننده های استثنا دخالت می کنند. برای رفع مشکل، با تماس با disableSDKCrashReporting ، گزارش خرابی را در SDK Mobile Ads خاموش کنید.

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

پشتیبانی از پلتفرم

مسائل پسرفته

زمانی که شما قبلاً آن را بسته اید، یک مشکل پسرفت داشته است، اما Crashlytics گزارش جدیدی دریافت می کند مبنی بر اینکه مشکل دوباره رخ داده است. Crashlytics به طور خودکار این مشکلات پسرفته را مجدداً باز می کند تا بتوانید آنها را مطابق با برنامه خود برطرف کنید.

در اینجا یک سناریوی مثال آمده است که توضیح می دهد چگونه Crashlytics یک موضوع را به عنوان یک رگرسیون طبقه بندی می کند:

  1. برای اولین بار، Crashlytics یک گزارش خرابی در مورد Crash "A" دریافت می کند. Crashlytics یک مشکل مربوط به آن خرابی را باز می کند (مساله "A").
  2. شما این اشکال را به سرعت برطرف می‌کنید، شماره A را می‌بندید و سپس نسخه جدیدی از برنامه خود را منتشر می‌کنید.
  3. Crashlytics پس از بسته شدن این موضوع، گزارش دیگری در مورد مشکل "A" دریافت می کند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics هنگام بستن مشکل از آن مطلع بوده است (به این معنی که نسخه اصلاً گزارش خرابی را برای هر خرابی ارسال کرده است)، Crashlytics این مشکل را پسرفته در نظر نخواهد گرفت. موضوع بسته خواهد ماند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics از آن اطلاعی نداشته است (به این معنی که این نسخه هرگز هیچ گزارش خرابی برای هر خرابی ارسال نکرده است)، Crashlytics مشکل را پسرفته در نظر می‌گیرد و دوباره آن را باز می‌کند.

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

اگر گزارشی از یک نسخه برنامه قدیمی است که در هنگام بسته شدن مشکل، هیچ گزارش خرابی ارسال نکرده است، Crashlytics مشکل را پسرفته می‌داند و دوباره آن را باز می‌کند.

این وضعیت می‌تواند در شرایط زیر اتفاق بیفتد: شما یک اشکال را برطرف کرده‌اید و نسخه جدیدی از برنامه خود را منتشر کرده‌اید، اما همچنان کاربرانی در نسخه‌های قدیمی‌تر بدون رفع اشکال دارید. اگر به‌طور تصادفی، یکی از آن نسخه‌های قدیمی‌تر هیچ‌وقت هیچ گزارش خرابی ارسال نکرده بود، و آن کاربران شروع به مواجهه با باگ کردند، آن گزارش‌های خرابی باعث ایجاد یک مشکل پسرفته می‌شوند.

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

،


این صفحه راهنمایی عیب‌یابی و پاسخ‌هایی به سؤالات متداول درباره استفاده از Crashlytics ارائه می‌دهد. اگر چیزی را که به دنبالش هستید پیدا نکردید یا به کمک بیشتری نیاز دارید، با پشتیبانی Firebase تماس بگیرید.

عیب یابی عمومی/سؤالات متداول

ممکن است متوجه دو قالب مختلف برای مشکلات فهرست شده در جدول مشکلات خود در کنسول Firebase شوید. و همچنین ممکن است در برخی از مشکلات خود متوجه ویژگی به نام "Variants" شوید. در اینجا دلیل است!

در اوایل سال 2023، موتور تجزیه و تحلیل بهبود یافته ای را برای گروه بندی رویدادها و همچنین طراحی به روز شده و برخی ویژگی های پیشرفته برای مسائل جدید (مانند انواع!) ارائه کردیم. برای همه جزئیات، پست اخیر وبلاگ ما را بررسی کنید، اما می توانید برای نکات مهم در زیر بخوانید.

Crashlytics همه رویدادهای برنامه شما (مانند خرابی‌ها، موارد غیرمرگبار و ANR) را تجزیه و تحلیل می‌کند و گروه‌هایی از رویدادها به نام مسائل ایجاد می‌کند — همه رویدادها در یک شماره یک نقطه شکست مشترک دارند.

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

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

در اینجا چیزی است که با این بهبودها تجربه خواهید کرد:

  • ابرداده اصلاح شده در ردیف شماره نمایش داده می شود
    اکنون درک و تریاژ مسائل در برنامه شما آسان تر شده است.

  • مسائل تکراری کمتر
    تغییر شماره خط منجر به مشکل جدیدی نمی شود.

  • اشکال زدایی آسانتر مسائل پیچیده با دلایل ریشه ای مختلف
    از انواع برای اشکال زدایی رایج ترین ردیابی پشته در یک شماره استفاده کنید.

  • هشدارها و سیگنال های معنی دار تر
    یک شماره جدید در واقع نشان دهنده یک باگ جدید است.

  • جستجوی قدرتمندتر
    هر شماره حاوی فراداده قابل جستجوی بیشتری است، مانند نوع استثنا و نام بسته.

در اینجا نحوه اجرای این بهبودها آمده است:

  • وقتی رویدادهای جدیدی را از برنامه شما دریافت می‌کنیم، بررسی می‌کنیم که آیا آنها با مشکل موجود مطابقت دارند یا خیر.

  • اگر مطابقت وجود نداشته باشد، به طور خودکار الگوریتم گروه‌بندی رویداد هوشمندانه‌تر خود را در رویداد اعمال می‌کنیم و یک مشکل جدید با طراحی ابرداده اصلاح‌شده ایجاد می‌کنیم.

این اولین به‌روزرسانی بزرگی است که ما در حال ایجاد گروه‌بندی رویداد خود هستیم. اگر بازخوردی دارید یا با مشکلی مواجه شدید، لطفاً با ارسال گزارش به ما اطلاع دهید.

اگر گزارش‌های خرده نان را نمی‌بینید، توصیه می‌کنیم پیکربندی برنامه خود را برای Google Analytics بررسی کنید. مطمئن شوید که شرایط زیر را دارید:

اگر هشدارهای سرعت را نمی بینید، مطمئن شوید که از آن استفاده می کنید

اگر معیارهای بدون خرابی (مانند کاربران و جلسات بدون خرابی) را نمی‌بینید یا معیارهای غیرقابل اعتمادی را مشاهده می‌کنید، موارد زیر را بررسی کنید:

  • مطمئن شوید که از آن استفاده می کنید

  • مطمئن شوید که تنظیمات جمع‌آوری داده‌ها بر کیفیت معیارهای بدون خرابی شما تأثیر نمی‌گذارد:

    • اگر با غیرفعال کردن گزارش خودکار خرابی، گزارش انتخاب را فعال کنید ، اطلاعات خرابی را فقط می‌توان از کاربرانی که صریحاً در جمع‌آوری داده‌ها شرکت کرده‌اند به Crashlytics ارسال کرد. بنابراین، دقت معیارهای بدون خرابی تحت تأثیر قرار خواهد گرفت زیرا Crashlytics فقط اطلاعات خرابی را از این کاربران انتخاب شده (به جای همه کاربران شما) در اختیار دارد. این بدان معنی است که معیارهای بدون خرابی شما ممکن است کمتر قابل اعتماد باشد و کمتر منعکس کننده ثبات کلی برنامه شما باشد.

    • اگر جمع‌آوری خودکار داده‌ها را غیرفعال کرده‌اید، می‌توانید از sendUnsentReports برای ارسال گزارش‌های حافظه پنهان روی دستگاه به Crashlytics استفاده کنید. استفاده از این روش، داده‌های خرابی را به Crashlytics ارسال می‌کند، اما نه داده‌های جلسات را که باعث می‌شود نمودارهای کنسول مقادیر کم یا صفر را برای معیارهای بدون خرابی نشان دهند.

به درک معیارهای بدون خرابی مراجعه کنید.

یادداشت‌ها به اعضای پروژه اجازه می‌دهند تا در مورد مسائل خاص با سؤالات، به‌روزرسانی وضعیت و غیره نظر دهند.

هنگامی که یک عضو پروژه یادداشتی را پست می کند، با ایمیل حساب Google خود برچسب گذاری می شود. این آدرس ایمیل همراه با یادداشت برای همه اعضای پروژه که به مشاهده یادداشت دسترسی دارند قابل مشاهده است.

موارد زیر دسترسی مورد نیاز برای مشاهده، نوشتن و حذف یادداشت ها را شرح می دهد:

ادغام ها

اگر پروژه شما از Crashlytics در کنار Google Mobile Ads SDK استفاده می کند، احتمالاً گزارشگران خرابی هنگام ثبت کنترل کننده های استثنا دخالت می کنند. برای رفع مشکل، با تماس با disableSDKCrashReporting ، گزارش خرابی را در SDK Mobile Ads خاموش کنید.

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

پشتیبانی از پلتفرم

مسائل پسرفته

زمانی که شما قبلاً آن را بسته اید، یک مشکل پسرفت داشته است، اما Crashlytics گزارش جدیدی دریافت می کند مبنی بر اینکه مشکل دوباره رخ داده است. Crashlytics به طور خودکار این مشکلات پسرفته را مجدداً باز می کند تا بتوانید آنها را مطابق با برنامه خود برطرف کنید.

در اینجا یک سناریوی مثال آمده است که توضیح می دهد چگونه Crashlytics یک موضوع را به عنوان یک رگرسیون طبقه بندی می کند:

  1. برای اولین بار، Crashlytics یک گزارش خرابی در مورد Crash "A" دریافت می کند. Crashlytics یک مشکل مربوط به آن خرابی را باز می کند (مساله "A").
  2. شما این اشکال را به سرعت برطرف می‌کنید، شماره A را می‌بندید و سپس نسخه جدیدی از برنامه خود را منتشر می‌کنید.
  3. Crashlytics پس از بسته شدن این موضوع، گزارش دیگری در مورد مشکل "A" دریافت می کند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics هنگام بستن مشکل از آن مطلع بوده است (به این معنی که نسخه اصلاً گزارش خرابی را برای هر خرابی ارسال کرده است)، Crashlytics این مشکل را پسرفته در نظر نخواهد گرفت. موضوع بسته خواهد ماند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics از آن اطلاعی نداشته است (به این معنی که این نسخه هرگز هیچ گزارش خرابی برای هر خرابی ارسال نکرده است)، Crashlytics مشکل را پسرفته در نظر می‌گیرد و دوباره آن را باز می‌کند.

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

اگر گزارشی از یک نسخه برنامه قدیمی است که در هنگام بسته شدن مشکل، هیچ گزارش خرابی ارسال نکرده است، Crashlytics مشکل را پسرفته می‌داند و دوباره آن را باز می‌کند.

این وضعیت می‌تواند در شرایط زیر اتفاق بیفتد: شما یک اشکال را برطرف کرده‌اید و نسخه جدیدی از برنامه خود را منتشر کرده‌اید، اما همچنان کاربرانی در نسخه‌های قدیمی‌تر بدون رفع اشکال دارید. اگر به‌طور تصادفی، یکی از آن نسخه‌های قدیمی‌تر هیچ‌وقت هیچ گزارش خرابی ارسال نکرده بود، و آن کاربران شروع به مواجهه با باگ کردند، آن گزارش‌های خرابی باعث ایجاد یک مشکل پسرفته می‌شوند.

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

،


این صفحه راهنمایی عیب‌یابی و پاسخ‌هایی به سؤالات متداول درباره استفاده از Crashlytics ارائه می‌دهد. اگر چیزی را که به دنبالش هستید پیدا نکردید یا به کمک بیشتری نیاز دارید، با پشتیبانی Firebase تماس بگیرید.

عیب یابی عمومی/سؤالات متداول

ممکن است متوجه دو قالب مختلف برای مشکلات فهرست شده در جدول مشکلات خود در کنسول Firebase شوید. و همچنین ممکن است در برخی از مشکلات خود متوجه ویژگی به نام "Variants" شوید. در اینجا دلیل است!

در اوایل سال 2023، موتور تجزیه و تحلیل بهبود یافته ای را برای گروه بندی رویدادها و همچنین طراحی به روز شده و برخی ویژگی های پیشرفته برای مسائل جدید (مانند انواع!) ارائه کردیم. برای همه جزئیات، پست اخیر وبلاگ ما را بررسی کنید، اما می توانید برای نکات مهم در زیر بخوانید.

Crashlytics همه رویدادهای برنامه شما (مانند خرابی‌ها، موارد غیرمرگبار و ANR) را تجزیه و تحلیل می‌کند و گروه‌هایی از رویدادها به نام مسائل ایجاد می‌کند — همه رویدادها در یک شماره یک نقطه شکست مشترک دارند.

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

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

در اینجا چیزی است که با این بهبودها تجربه خواهید کرد:

  • ابرداده اصلاح شده در ردیف شماره نمایش داده می شود
    اکنون درک و تریاژ مسائل در برنامه شما آسان تر شده است.

  • مسائل تکراری کمتر
    تغییر شماره خط منجر به مشکل جدیدی نمی شود.

  • اشکال زدایی آسانتر مسائل پیچیده با دلایل ریشه ای مختلف
    از انواع برای اشکال زدایی رایج ترین ردیابی پشته در یک شماره استفاده کنید.

  • هشدارها و سیگنال های معنی دار تر
    یک شماره جدید در واقع نشان دهنده یک باگ جدید است.

  • جستجوی قدرتمندتر
    هر شماره حاوی فراداده قابل جستجوی بیشتری است، مانند نوع استثنا و نام بسته.

در اینجا نحوه اجرای این بهبودها آمده است:

  • وقتی رویدادهای جدیدی را از برنامه شما دریافت می‌کنیم، بررسی می‌کنیم که آیا آنها با مشکل موجود مطابقت دارند یا خیر.

  • اگر مطابقت وجود نداشته باشد، به طور خودکار الگوریتم گروه‌بندی رویداد هوشمندانه‌تر خود را در رویداد اعمال می‌کنیم و یک مشکل جدید با طراحی ابرداده اصلاح‌شده ایجاد می‌کنیم.

این اولین به‌روزرسانی بزرگی است که ما در حال ایجاد گروه‌بندی رویداد خود هستیم. اگر بازخوردی دارید یا با مشکلی مواجه شدید، لطفاً با ارسال گزارش به ما اطلاع دهید.

اگر گزارش‌های خرده نان را نمی‌بینید، توصیه می‌کنیم پیکربندی برنامه خود را برای Google Analytics بررسی کنید. مطمئن شوید که شرایط زیر را دارید:

اگر هشدارهای سرعت را نمی بینید، مطمئن شوید که از آن استفاده می کنید

اگر معیارهای بدون خرابی (مانند کاربران و جلسات بدون خرابی) را نمی‌بینید یا معیارهای غیرقابل اعتمادی را مشاهده می‌کنید، موارد زیر را بررسی کنید:

  • مطمئن شوید که از آن استفاده می کنید

  • مطمئن شوید که تنظیمات جمع‌آوری داده‌ها بر کیفیت معیارهای بدون خرابی شما تأثیر نمی‌گذارد:

    • اگر با غیرفعال کردن گزارش خودکار خرابی، گزارش انتخاب را فعال کنید ، اطلاعات خرابی را فقط می‌توان از کاربرانی که صریحاً در جمع‌آوری داده‌ها شرکت کرده‌اند به Crashlytics ارسال کرد. بنابراین، دقت معیارهای بدون خرابی تحت تأثیر قرار خواهد گرفت زیرا Crashlytics فقط اطلاعات خرابی را از این کاربران انتخاب شده (به جای همه کاربران شما) در اختیار دارد. این بدان معنی است که معیارهای بدون خرابی شما ممکن است کمتر قابل اعتماد باشد و کمتر منعکس کننده ثبات کلی برنامه شما باشد.

    • اگر جمع‌آوری خودکار داده‌ها را غیرفعال کرده‌اید، می‌توانید از sendUnsentReports برای ارسال گزارش‌های حافظه پنهان روی دستگاه به Crashlytics استفاده کنید. استفاده از این روش، داده‌های خرابی را به Crashlytics ارسال می‌کند، اما نه داده‌های جلسات را که باعث می‌شود نمودارهای کنسول مقادیر کم یا صفر را برای معیارهای بدون خرابی نشان دهند.

به درک معیارهای بدون خرابی مراجعه کنید.

یادداشت‌ها به اعضای پروژه اجازه می‌دهند تا در مورد مسائل خاص با سؤالات، به‌روزرسانی وضعیت و غیره نظر دهند.

هنگامی که یک عضو پروژه یادداشتی را پست می کند، با ایمیل حساب Google خود برچسب گذاری می شود. این آدرس ایمیل همراه با یادداشت برای همه اعضای پروژه که به مشاهده یادداشت دسترسی دارند قابل مشاهده است.

موارد زیر دسترسی مورد نیاز برای مشاهده، نوشتن و حذف یادداشت ها را شرح می دهد:

ادغام ها

اگر پروژه شما از Crashlytics در کنار Google Mobile Ads SDK استفاده می کند، احتمالاً گزارشگران خرابی هنگام ثبت کنترل کننده های استثنا دخالت می کنند. برای رفع مشکل، با تماس با disableSDKCrashReporting ، گزارش خرابی را در SDK Mobile Ads خاموش کنید.

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

پشتیبانی از پلتفرم

مسائل پسرفته

زمانی که شما قبلاً آن را بسته اید، یک مشکل پسرفت داشته است، اما Crashlytics گزارش جدیدی دریافت می کند مبنی بر اینکه مشکل دوباره رخ داده است. Crashlytics به طور خودکار این مشکلات پسرفته را مجدداً باز می کند تا بتوانید آنها را مطابق با برنامه خود برطرف کنید.

در اینجا یک سناریوی مثال آمده است که توضیح می دهد چگونه Crashlytics یک موضوع را به عنوان یک رگرسیون طبقه بندی می کند:

  1. برای اولین بار، Crashlytics یک گزارش خرابی در مورد Crash "A" دریافت می کند. Crashlytics یک مشکل مربوط به آن خرابی را باز می کند (مساله "A").
  2. شما این اشکال را به سرعت برطرف می‌کنید، شماره A را می‌بندید و سپس نسخه جدیدی از برنامه خود را منتشر می‌کنید.
  3. Crashlytics پس از بسته شدن این موضوع، گزارش دیگری در مورد مشکل "A" دریافت می کند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics هنگام بستن مشکل از آن مطلع بوده است (به این معنی که نسخه اصلاً گزارش خرابی را برای هر خرابی ارسال کرده است)، Crashlytics این مشکل را پسرفته در نظر نخواهد گرفت. موضوع بسته خواهد ماند.
    • اگر گزارش مربوط به نسخه برنامه‌ای است که Crashlytics از آن اطلاعی نداشته است (به این معنی که این نسخه هرگز هیچ گزارش خرابی برای هر خرابی ارسال نکرده است)، Crashlytics مشکل را پسرفته در نظر می‌گیرد و دوباره آن را باز می‌کند.

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

اگر گزارشی از یک نسخه برنامه قدیمی است که در هنگام بسته شدن مشکل، هیچ گزارش خرابی ارسال نکرده است، Crashlytics مشکل را پسرفته می‌داند و دوباره آن را باز می‌کند.

این وضعیت می‌تواند در شرایط زیر اتفاق بیفتد: شما یک اشکال را برطرف کرده‌اید و نسخه جدیدی از برنامه خود را منتشر کرده‌اید، اما همچنان کاربرانی در نسخه‌های قدیمی‌تر بدون رفع اشکال دارید. اگر به‌طور تصادفی، یکی از آن نسخه‌های قدیمی‌تر هیچ‌وقت هیچ گزارش خرابی ارسال نکرده بود، و آن کاربران شروع به مواجهه با باگ کردند، آن گزارش‌های خرابی باعث ایجاد یک مشکل پسرفته می‌شوند.

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