ابدأ مع Firebase Crashlytics

تصف هذه البداية السريعة كيفية إعداد Firebase Crashlytics في تطبيقك باستخدام Firebase Crashlytics SDK بحيث يمكنك الحصول على تقارير أعطال شاملة في وحدة تحكم Firebase.

يتطلب إعداد Crashlytics مهامًا في كل من وحدة تحكم Firebase و IDE (مثل إضافة ملف تكوين Firebase و Crashlytics SDK). لإنهاء الإعداد ، ستحتاج إلى فرض تعطل تجريبي لإرسال تقرير التعطل الأول إلى Firebase.

قبل ان تبدأ

  1. إذا كنت لم تقم بذلك بالفعل، إضافة Firebase لمشروع الوحدة الخاصة بك. إذا لم يكن لديك مشروع الوحدة، يمكنك تحميل التطبيق عينة .

  2. الموصى بها: للحصول على ميزات مثل المستخدمين خالية من تحطم الطائرة، وسجلات التفصيلي، والتنبيهات السرعة، تحتاج لتفعيل برنامج Google Analytics مشروع Firebase الخاص بك.

    • إذا لم يكن لديك مشروع Firebase الموجودة لديك تمكين جوجل تحليلات، يمكنك تمكين تحليلات جوجل من علامة التبويب التكاملات الخاص بك > إعدادات المشروع في وحدة تحكم Firebase.

    • إذا كنت تنشئ مشروع Firebase جديدًا ، فقم بتمكين Google Analytics أثناء سير عمل إنشاء المشروع.

الخطوة 1: تمكين Crashlytics في وحدة تحكم Firebase

  1. انتقل إلى لوحة أجهزة القياس Crashlytics في وحدة تحكم Firebase.

  2. تأكد من تحديد التطبيق من القائمة المنسدلة بجانب Crashlytics في الجزء العلوي من الصفحة.

  3. انقر على تمكين Crashlytics.

الخطوة 2: إضافة Firebase Crashlytics SDK في تطبيقك

لاحظ أنه عند تسجيل مشروع Unity الخاص بك في مشروع Firebase ، ربما تكون قد قمت بالفعل بتنزيل Firebase Unity SDK وإضافة حزمة Crashlytics.

  1. تحميل Firebase الوحدة SDK ، ثم بفك SDK مريحة في مكان ما.

    إن حزمة Firebase Unity SDK ليست خاصة بالنظام الأساسي.

  2. في مشروعك مفتوحة الوحدة، انتقل إلى الأصول> استيراد حزمة> حزمة مخصص.

  3. من SDK محلول، حدد لاستيراد SDK Crashlytics ( FirebaseCrashlytics.unitypackage ).

    يمكنك استيراد أي دولة أخرى المنتج Firebase المدعومة ، كذلك.

  4. في الإطار استيراد الوحدة حزمة، انقر فوق استيراد.

الخطوة 3: تهيئة Crashlytics

  1. إنشاء C # نصي جديد، ثم إضافته إلى GameObject في المشهد.

    1. فتح المشهد الأول الخاص بك، ثم إنشاء فارغة GameObject اسمه CrashlyticsInitializer .

    2. انقر فوق إضافة مكون في المفتش لكائن جديد.

    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()
        // ...
    }

الخطوة 4: (Android فقط) الحصول على اقامة لتحميل رمز

الخطوات الواردة في هذا القسم مطلوبة فقط لتطبيقات Android التي تستخدم IL2CPP.

  • بالنسبة لتطبيقات Android التي تستخدم الواجهة الخلفية للبرمجة النصية الأحادية من Unity ، فلن تكون هناك حاجة إلى هذه الخطوات.

  • بالنسبة لتطبيقات نظام Apple الأساسي ، هذه الخطوات غير ضرورية لأن المكون الإضافي Firebase Unity Editor يقوم تلقائيًا بتهيئة مشروع Xcode الخاص بك لتحميل الرموز.

Crashlytics في الوحدة SDK 8.6.1+ يتضمن تلقائيا NDK التقارير الحادث الذي يسمح Crashlytics أن يقدم تلقائيا الوحدة IL2CPP تحطم على الروبوت. ومع ذلك ، لمشاهدة آثار المكدس الرمزية لأعطال المكتبة الأصلية في لوحة معلومات Crashlytics ، يجب عليك تحميل معلومات الرمز في وقت الإنشاء باستخدام Firebase CLI.

أكمل الخطوات التالية للإعداد لتحميل الرمز:

  1. اتبع الإرشادات ل تثبيت Firebase CLI .

    إذا كنت قد قمت بتثبيت بالفعل CLI، تأكد من تحديث إلى الإصدار الأخير .

  2. (فقط للتطبيقات باستخدام API مستوى الروبوت 30+) تحديث التطبيق الخاص بك AndroidManifest.xml قالب لتعطيل مؤشر توصيف:

    1. ضع علامة في المربع لإعدادات الروبوت لاعب> إعدادات نشر> البناء> مخصص الرئيسية المانيفستو.

    2. فتح القالب واضح يقع في Assets/Plugins/Android/AndroidManifest.xml .

    3. أضف السمة التالية إلى العلامة التطبيق: <application android:allowNativeHeapPointerTagging="false" ... />

خطوة 5: بناء بلدكم رموز المشروع وتحميل

دائرة الرقابة الداخلية + (منصة أبل)

  1. من مربع الحوار إعدادات إنشاء، تصدير المشروع الخاص بك إلى مساحة عمل كسكودي.

  2. بناء التطبيق الخاص بك.

    بالنسبة لأنظمة Apple الأساسية ، يقوم المكون الإضافي Firebase Unity Editor تلقائيًا بتهيئة مشروع Xcode الخاص بك لإنشاء وتحميل ملف رمز متوافق مع Crashlytics إلى خوادم Firebase لكل إصدار.

ذكري المظهر

  1. من مربع الحوار إعدادات إنشاء، نفذ أحد الإجراءات التالية:

    • تصدير إلى مشروع Android Studio لبناء مشروعك ؛ أو

    • قم ببناء APK الخاص بك مباشرة من Unity Editor.
      قبل البناء، وتأكد من أن مربع لانشاء symbols.zip يتم التحقق في الحوار البناء إعدادات.

  2. بمجرد انتهاء التصميم ، قم بإنشاء ملف رمز متوافق مع Crashlytics وقم بتحميله على خوادم Firebase عن طريق تشغيل أمر Firebase CLI التالي:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : لديك Firebase الروبوت معرف التطبيق (وليس اسم مجموعتك)
      مثال Firebase الروبوت التطبيق ID: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : المسار إلى ملف رمز التي تم إنشاؤها بواسطة CLI

      • تصديرها إلى مشروع الروبوت ستوديو - PATH/TO/SYMBOLS هو unityLibrary/symbols الدليل، والذي يتم إنشاؤه في جذر مشروع تصدير بعد إنشاء التطبيق عبر Gradle أو الروبوت الاستوديو.

      • بناء APK مباشرة من داخل الوحدة - 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 يوفر معلومات تصحيح أخطاء إضافية

خطوة 6: قوة تحطم اختبار لإنهاء الإعداد

لإنهاء إعداد 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. أنشئ تطبيقك وحمِّل معلومات الرموز بعد انتهاء البناء.

    • دائرة الرقابة الداخلية +: إن الوحدة محرر Firebase المساعد تلقائيا بتكوين مشروع Xcode لتحميل الملف رمز الخاص بك.

    • الروبوت: لديك تطبيقات الروبوت التي تستخدم IL2CPP، تشغيل Firebase CLI crashlytics:symbols:upload الأوامر لتحميل الملف رمز الخاص بك.

  3. قم بتشغيل التطبيق الخاص بك. مرة واحدة التطبيق قيد التشغيل، مشاهدة سجل الجهاز وانتظر الاستثناء الزناد من CrashlyticsTester .

    • دائرة الرقابة الداخلية +: مشاهدة يسجل في الجزء السفلي من كسكودي.

    • الروبوت: مشاهدة يسجل عن طريق تشغيل الأمر التالي في الطرفية: adb logcat .

  4. عندما ترى الاستثناء في سجل جهازك ، أعد تشغيل التطبيق حتى يتمكن من إرسال تقرير التعطل إلى Firebase.

  5. انتقل إلى لوحة أجهزة القياس Crashlytics من وحدة التحكم Firebase لرؤية تحطم الاختبار.

    إذا كنت قد استرجعت وحدة وكنت لا تزال لا ترى تحطم الاختبار بعد خمس دقائق، تمكين تسجيل التصحيح لمعرفة ما إذا كان التطبيق بإرسال تقارير الأعطال.


وهذا كل شيء! تراقب Crashlytics الآن تطبيقك بحثًا عن الأعطال. زيارة وحة Crashlytics لعرض والتحقيق في جميع التقارير والإحصاءات الخاصة بك.

الخطوات التالية