Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

با Firebase Crashlytics شروع کنید

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

این شروع سریع نحوه راه‌اندازی Firebase Crashlytics را در برنامه خود با Firebase Crashlytics SDK توضیح می‌دهد تا بتوانید گزارش‌های خرابی جامع را در کنسول Firebase دریافت کنید.

راه‌اندازی Crashlytics به وظایفی هم در کنسول Firebase و هم در IDE شما نیاز دارد (مانند افزودن یک فایل پیکربندی Firebase و Crashlytics SDK). برای تکمیل راه‌اندازی، باید یک خرابی آزمایشی را مجبور کنید تا اولین گزارش خرابی خود را به Firebase ارسال کنید.

قبل از اینکه شروع کنی

  1. اگر قبلاً این کار را نکرده اید، Firebase را به پروژه Unity خود اضافه کنید. اگر پروژه یونیتی ندارید، می توانید یک برنامه نمونه دانلود کنید.

  2. توصیه می‌شود: برای دریافت ویژگی‌هایی مانند کاربران بدون خرابی، گزارش‌های خرده نان، و هشدارهای سرعت، باید Google Analytics را در پروژه Firebase خود فعال کنید.

    • اگر پروژه Firebase موجود شما Google Analytics را فعال نمی کند، می توانید Google Analytics را از برگه ادغام > تنظیمات پروژه در کنسول Firebase فعال کنید.

    • اگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics را در جریان کار ایجاد پروژه فعال کنید.

مرحله 1 : Crashlytics SDK را به برنامه خود اضافه کنید

توجه داشته باشید که وقتی پروژه Unity خود را با پروژه Firebase خود ثبت کردید، ممکن است قبلاً Firebase Unity SDK را دانلود کرده باشید و بسته Crashlytics را اضافه کرده باشید.

  1. Firebase Unity SDK را دانلود کنید، سپس SDK را در جایی مناسب از حالت فشرده خارج کنید.

    Firebase Unity SDK مخصوص پلتفرم نیست.

  2. در پروژه Unity باز خود، به Assets > Import Package > Custom Package بروید.

  3. از SDK خارج‌شده، گزینه وارد کردن Crashlytics SDK ( FirebaseCrashlytics.unitypackage ) را انتخاب کنید.

    همچنین می توانید هر محصول Firebase پشتیبانی شده دیگری را وارد کنید.

  4. در پنجره Import Unity Package ، روی Import کلیک کنید.

مرحله 2 : Crashlytics را راه اندازی کنید

  1. یک اسکریپت C# جدید ایجاد کنید، سپس آن را به GameObject در صحنه اضافه کنید.

    1. اولین صحنه خود را باز کنید، سپس یک GameObject خالی با نام CrashlyticsInitializer ایجاد کنید.

    2. روی Add Component در Inspector برای شی جدید کلیک کنید.

    3. اسکریپت CrashlyticsInit خود را انتخاب کنید تا آن را به شی CrashlyticsInitializer اضافه کنید.

  2. Crashlytics را در روش Start اسکریپت راه اندازی کنید:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase
    using Firebase;
    
    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;
    
                    // 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 را در اندروید گزارش کند. با این حال، برای دیدن ردپای نمادین پشته برای خرابی‌های کتابخانه بومی در داشبورد Crashlytics، باید اطلاعات نماد را در زمان ساخت با استفاده از Firebase CLI آپلود کنید.

مراحل زیر را برای تنظیم آپلود نماد انجام دهید:

  1. دستورالعمل ها را برای نصب Firebase CLI دنبال کنید.

    اگر قبلاً CLI را نصب کرده‌اید، حتماً به آخرین نسخه آن به‌روزرسانی کنید.

  2. (فقط برای برنامه‌هایی که از Android API سطح 30 و بالاتر استفاده می‌کنند) الگوی AndroidManifest.xml برنامه خود را برای غیرفعال کردن Pointer Tagging به‌روزرسانی کنید:

    1. کادر تنظیمات Player Android > Publishing Settings > Build > Custom Main Manifest را علامت بزنید.

    2. الگوی مانیفست واقع در Assets/Plugins/Android/AndroidManifest.xml را باز کنید.

    3. ویژگی زیر را به تگ برنامه اضافه کنید: <application android:allowNativeHeapPointerTagging="false" ... />

مرحله 4 : پروژه خود را بسازید و نمادها را آپلود کنید

iOS+ (پلتفرم اپل)

  1. از کادر گفتگوی Build Settings ، پروژه خود را به فضای کاری Xcode صادر کنید.

  2. اپلیکیشن خود را بسازید

    برای پلتفرم‌های اپل، افزونه Firebase Unity Editor پروژه Xcode شما را به‌طور خودکار پیکربندی می‌کند تا برای هر ساخت، یک فایل نماد سازگار با Crashlytics را در سرورهای Firebase آپلود کند.

اندروید

  1. از کادر گفتگوی Build Settings یکی از موارد زیر را انجام دهید:

    • برای ساخت پروژه خود به یک پروژه Android Studio صادر کنید. یا

    • APK خود را مستقیماً از ویرایشگر Unity بسازید.
      قبل از ساخت، مطمئن شوید که چک باکس Create symbols.zip در گفتگوی تنظیمات ساخت علامت زده شده باشد.

  2. پس از اتمام ساخت، یک فایل نماد سازگار با 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

    • PATH/TO/SYMBOLS : مسیر فایل نماد تولید شده توسط CLI

      • صادر شده به یک پروژه Android Studio - PATH/TO/SYMBOLS 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، باید یک خرابی آزمایشی را اجباری کنید.

  1. یک 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 non-fatal errors 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");
            }
        }
    }
    
  2. برنامه خود را بسازید و اطلاعات نماد را پس از اتمام ساخت خود آپلود کنید.

    • iOS+ : افزونه Firebase Unity Editor به طور خودکار پروژه Xcode شما را برای آپلود فایل نماد شما پیکربندی می کند.

    • Android : برای برنامه های اندرویدی شما که از IL2CPP استفاده می کنند، دستور Firebase CLI crashlytics:symbols:upload را اجرا کنید تا فایل نماد خود را آپلود کنید.

  3. برنامه خود را اجرا کنید پس از اجرا شدن برنامه، گزارش دستگاه را تماشا کنید و منتظر بمانید تا استثنا از CrashlyticsTester شود.

    • iOS+ : گزارش‌ها را در قسمت پایین Xcode مشاهده کنید.

    • Android : با اجرای دستور زیر در ترمینال، گزارش‌ها را مشاهده کنید: adb logcat .

  4. وقتی استثنا را در گزارش دستگاه خود مشاهده کردید، برنامه خود را مجددا راه اندازی کنید تا بتواند گزارش خرابی را به Firebase ارسال کند.

  5. برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.

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


و بس! Crashlytics اکنون برنامه شما را از نظر خرابی زیر نظر دارد. از داشبورد Crashlytics دیدن کنید تا همه گزارش ها و آمار خود را مشاهده و بررسی کنید.

مراحل بعدی

  • با Google Play یکپارچه شوید تا بتوانید گزارش‌های خرابی برنامه Android خود را با استفاده از مسیر Google Play مستقیماً در داشبورد Crashlytics فیلتر کنید. این به شما امکان می دهد داشبورد خود را بهتر بر روی ساخت های خاص متمرکز کنید.