این شروع سریع نحوه راهاندازی Firebase Crashlytics را در برنامه خود با Firebase Crashlytics SDK توضیح میدهد تا بتوانید گزارشهای خرابی جامع را در کنسول Firebase دریافت کنید.
راهاندازی Crashlytics به وظایفی هم در کنسول Firebase و هم در IDE شما نیاز دارد (مانند افزودن یک فایل پیکربندی Firebase و Crashlytics SDK). برای تکمیل راهاندازی، باید یک خرابی آزمایشی را مجبور کنید تا اولین گزارش خرابی خود را به Firebase ارسال کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید، Firebase را به پروژه Unity خود اضافه کنید . اگر پروژه یونیتی ندارید، می توانید یک برنامه نمونه دانلود کنید.
توصیه میشود : برای دریافت خودکار گزارشهای خرده نان برای درک اقدامات کاربر که منجر به خرابی، رویداد غیرمرگبار یا ANR میشود، باید Google Analytics در پروژه Firebase خود فعال کنید.
اگر پروژه Firebase موجود شما Google Analytics فعال نکرده است، می توانید Google Analytics از برگه Integrations فعال کنید.
Firebase . > تنظیمات پروژه در کنسولاگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics در جریان کار ایجاد پروژه فعال کنید.
مرحله 1 : Crashlytics SDK را به برنامه خود اضافه کنید
توجه داشته باشید که وقتی پروژه Unity خود را با پروژه Firebase خود ثبت کردید، ممکن است قبلاً Firebase Unity SDK را دانلود کرده باشید و بسته های توضیح داده شده در مراحل زیر را اضافه کرده باشید.
Firebase Unity SDK را دانلود کنید، سپس SDK را در جایی مناسب از حالت فشرده خارج کنید. Firebase Unity SDK مخصوص پلتفرم نیست.
در پروژه Unity باز خود، به Assets > Import Package > Custom Package بروید.
از SDK خارجشده، گزینه وارد کردن Crashlytics SDK (
FirebaseCrashlytics.unitypackage
) را انتخاب کنید.برای بهرهگیری از گزارشهای خرده نان، Firebase SDK برای Google Analytics را نیز به برنامه خود اضافه کنید (
FirebaseAnalytics.unitypackage
). مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است .در پنجره Import Unity Package ، روی Import کلیک کنید.
مرحله 2 : Crashlytics راه اندازی کنید
یک اسکریپت C# جدید ایجاد کنید، سپس آن را به
GameObject
در صحنه اضافه کنید.اولین صحنه خود را باز کنید، سپس یک
GameObject
خالی با نامCrashlyticsInitializer
ایجاد کنید.روی Add Component در Inspector برای شی جدید کلیک کنید.
اسکریپت
Crashlytics Init
خود را انتخاب کنید تا آن را به شیCrashlyticsInitializer
اضافه کنید.
Crashlytics در روش
Start
اسکریپت راه اندازی کنید:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase and Crashlytics using Firebase; using Firebase.Crashlytics; public class CrashlyticsInit : MonoBehaviour { // Use this for initialization void Start () { // Initialize Firebase Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. // Crashlytics will use the DefaultInstance, as well; // this ensures that Crashlytics is initialized. Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance; // When this property is set to true, Crashlytics will report all // uncaught exceptions as fatal events. This is the recommended behavior. Crashlytics.ReportUncaughtExceptionsAsFatal = true; // Set a flag here for indicating that your project is ready to use Firebase. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}",dependencyStatus)); // Firebase Unity SDK is not safe to use here. } }); } // Update is called once per frame void Update() // ... }
مرحله 3 : (فقط اندروید) برای آپلود نماد راهاندازی کنید
این مرحله فقط برای برنامه های اندرویدی که از IL2CPP استفاده می کنند لازم است.
برای برنامههای اندرویدی که از بخش اسکریپتنویسی مونو Unity استفاده میکنند، به این مراحل نیازی نیست.
برای برنامههای پلتفرم اپل، به این مراحل نیازی نیست، زیرا افزونه Firebase Unity Editor بهطور خودکار پروژه Xcode شما را برای آپلود نمادها پیکربندی میکند.
Unity SDK 8.6.1+ Crashlytics به طور خودکار شامل گزارش خرابی NDK می شود که به Crashlytics اجازه می دهد تا به طور خودکار خرابی های Unity IL2CPP در Android را گزارش کند. با این حال، برای دیدن ردپای نمادین پشته برای خرابیهای کتابخانه بومی در داشبورد Crashlytics ، باید اطلاعات نماد را در زمان ساخت با استفاده از Firebase CLI آپلود کنید.
برای راهاندازی برای بارگذاری نماد، دستورالعملهای نصب Firebase CLI را دنبال کنید.
اگر قبلاً CLI را نصب کردهاید، حتماً به آخرین نسخه آن بهروزرسانی کنید .
مرحله 4 : پروژه خود را بسازید و نمادها را آپلود کنید
iOS+ (پلتفرم اپل)
از کادر گفتگوی Build Settings ، پروژه خود را به فضای کاری Xcode صادر کنید.
اپلیکیشن خود را بسازید
برای پلتفرم های اپل، افزونه Firebase Unity Editor به طور خودکار پروژه Xcode شما را برای تولید و آپلود یک فایل نماد سازگار با Crashlytics در سرورهای Firebase برای هر ساخت، پیکربندی می کند.
اندروید
از کادر گفتگوی Build Settings یکی از موارد زیر را انجام دهید:
برای ساخت پروژه خود به یک پروژه Android Studio صادر کنید. یا
APK خود را مستقیماً از ویرایشگر Unity بسازید.
قبل از ساخت، مطمئن شوید که چک باکس Create symbols.zip در گفتگوی تنظیمات ساخت علامت زده شده باشد.
پس از اتمام ساخت، یک فایل نماد سازگار با Crashlytics ایجاد کنید و با اجرای دستور Firebase CLI زیر آن را در سرورهای Firebase آپلود کنید:
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 : مسیر فایل نماد تولید شده توسط CLI
صادر شده به یک پروژه Android Studio - PATH/TO/SYMBOLS دایرکتوری
unityLibrary/symbols
است که پس از ساختن برنامه از طریق Gradle یا Android Studio در ریشه پروژه صادر شده ایجاد می شود.APK را مستقیماً از داخل Unity ساخته شده است - PATH/TO/SYMBOLS مسیر فایل نماد زیپ شده است که پس از اتمام ساخت شما در دایرکتوری ریشه پروژه ایجاد می شود (به عنوان مثال:
myproject/myapp-1.0-v100.symbols.zip
).
گزینه های پیشرفته برای استفاده از فرمان Firebase CLI برای تولید و آپلود فایل نماد را مشاهده کنید
پرچم توضیحات --generator=csym
از تولیدکننده فایل نماد cSYM قدیمی به جای تولیدکننده پیشفرض Breakpad استفاده میکند
برای استفاده توصیه نمی شود. توصیه می کنیم از تولید کننده فایل نماد Breakpad پیش فرض استفاده کنید.
--generator=breakpad
از تولید کننده فایل نماد Breakpad استفاده می کند
توجه داشته باشید که پیش فرض برای تولید فایل نماد، Breakpad است. فقط در صورتی از این پرچم استفاده کنید که اضافه کرده اید
symbolGenerator { csym() }
در پیکربندی ساخت شماست و میخواهید آن را نادیده بگیرید تا به جای آن از Breakpad استفاده کنید.--dry-run
فایل های نماد را تولید می کند اما آنها را آپلود نمی کند
اگر می خواهید محتوای فایل های ارسال شده را بررسی کنید، این پرچم مفید است.
--debug
اطلاعات رفع اشکال اضافی را ارائه می دهد
مرحله 5 : یک خرابی آزمایشی را مجبور کنید تا راهاندازی تمام شود
برای تکمیل راهاندازی Crashlytics و مشاهده دادههای اولیه در داشبورد Crashlytics کنسول Firebase ، باید یک خرابی آزمایشی را اجباری کنید.
یک
GameObject
موجود را پیدا کنید، سپس اسکریپت زیر را به آن اضافه کنید. این اسکریپت چند ثانیه پس از اجرای برنامه خود باعث خرابی تست می شود.using System; using UnityEngine; public class CrashlyticsTester : MonoBehaviour { int updatesBeforeException; // Use this for initialization void Start () { updatesBeforeException = 0; } // Update is called once per frame void Update() { // Call the exception-throwing method here so that it's run // every frame update throwExceptionEvery60Updates(); } // A method that tests your Crashlytics implementation by throwing an // exception every 60 frame updates. You should see reports in the // Firebase console a few minutes after running your app with this method. void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { // Set the counter to 60 updates updatesBeforeException = 60; // Throw an exception to test your Crashlytics implementation throw new System.Exception("test exception please ignore"); } } }
برنامه خود را بسازید و اطلاعات نماد را پس از اتمام ساخت خود آپلود کنید.
iOS+ : افزونه Firebase Unity Editor به طور خودکار پروژه Xcode شما را برای آپلود فایل نماد شما پیکربندی می کند.
Android : برای برنامه های اندرویدی شما که از IL2CPP استفاده می کنند، دستور Firebase CLI
crashlytics:symbols:upload
اجرا کنید تا فایل نماد خود را آپلود کنید.
برنامه خود را اجرا کنید پس از اجرا شدن برنامه، گزارش دستگاه را تماشا کنید و منتظر بمانید تا استثنا از
CrashlyticsTester
فعال شود.iOS+ : گزارشها را در قسمت پایین Xcode مشاهده کنید.
Android : با اجرای دستور زیر در ترمینال، گزارشها را مشاهده کنید:
adb logcat
.
برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.
اگر کنسول را بهروزرسانی کردهاید و بعد از پنج دقیقه هنوز خرابی آزمایشی را نمیبینید، ثبت اشکالزدایی را فعال کنید تا ببینید آیا برنامه شما گزارشهای خرابی را ارسال میکند یا خیر.
و بس! Crashlytics اکنون برنامه شما را از نظر خرابی زیر نظر دارد. از داشبورد Crashlytics دیدن کنید تا همه گزارش ها و آمار خود را مشاهده و بررسی کنید.
مراحل بعدی
- (توصیه میشود) برای برنامههای Android که از IL2CPP استفاده میکنند، با جمعآوری گزارشهای GWP-ASan، برای رفع اشکال خرابیهای ناشی از خطاهای حافظه بومی کمک بگیرید. این خطاهای مربوط به حافظه می تواند با خراب شدن حافظه در برنامه شما مرتبط باشد، که علت اصلی آسیب پذیری های امنیتی برنامه است. برای استفاده از این ویژگی اشکالزدایی، مطمئن شوید که برنامه شما از آخرین Crashlytics SDK for Unity (نسخه 10.7.0+) استفاده میکند و GWP-ASan را به صراحت فعال کرده است (به شما نیاز دارد که مانیفست برنامه Android خود را تغییر دهید ).
- با Google Play یکپارچه شوید تا بتوانید گزارشهای خرابی برنامه Android خود را با استفاده از مسیر Google Play مستقیماً در داشبورد Crashlytics فیلتر کنید. این به شما امکان می دهد داشبورد خود را بهتر بر روی ساخت های خاص متمرکز کنید.