يوضّح دليل البدء السريع هذا كيفية إعداد Firebase Crashlytics في تطبيقك باستخدام حزمة SDK لFirebase Crashlytics حتى تتمكّن من الحصول على تقارير شاملة عن تعطُّل التطبيقات في وحدة تحكّم Firebase.
يتطلّب إعداد Crashlytics تنفيذ مهام في كلّ من وحدة تحكّم Firebase و IDE (مثل إضافة ملف إعدادات Firebase وحزمة تطوير البرامج (SDK)Crashlytics ). لإكمال عملية الإعداد، عليك فرض حدوث عطل اختباري لإرسال أول تقرير عطل إلى Firebase.
قبل البدء
أضِف Firebase إلى مشروع Unity إذا لم يسبق لك إجراء ذلك. إذا لم يكن لديك مشروع Unity، يمكنك تنزيل نموذج تطبيق.
موصى به: للحصول تلقائيًا على سجلّات شريط التنقّل لفهم إجراءات المستخدم التي تؤدي إلى أعطال أو أحداث غير فادحة أو أخطاء ANR، عليك تفعيل Google Analytics في مشروعك على Firebase.
إذا لم يكن مشروعك الحالي في Firebase يحتوي على Google Analytics مُفعَّل، يمكنك تفعيل "Google Analytics" من في علامة التبويب عمليات الدمج على
في وحدة التحكم إعدادات المشروعFirebase. إذا كنت بصدد إنشاء مشروع جديد على Firebase، فعِّل Google Analytics أثناء سير عمل إنشاء المشروع.
الخطوة 1: إضافة حزمة تطوير البرامج (SDK) لنظام التشغيل Crashlytics إلى تطبيقك
تجدر الإشارة إلى أنّه عند تسجيل مشروعك على Unity في مشروعك على Firebase، سبق لهم تنزيل حزمة تطوير البرامج (SDK) Firebase Unity وإضافة الحِزم. الموضحة في الخطوات التالية.
نزِّل حزمة SDK لنظام التشغيل Firebase Unity، ثم فك ضغط حزمة SDK في مكان مناسب. وحزمة تطوير البرامج (SDK) Firebase من نوع Unity ليست مرتبطة بالنظام الأساسي.
في مشروع Unity المفتوح، انتقِل إلى مواد العرض > استيراد حزمة > حزمة مخصّصة.
من حزمة SDK التي تم فك ضغطها، اختَر استيراد حزمة SDK لنظام التشغيل Crashlytics (
FirebaseCrashlytics.unitypackage
).للاستفادة من سجلّات شريط التنقّل يجب أيضًا إضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase الخاصة بـ Google Analytics إلى تطبيقك (
FirebaseAnalytics.unitypackage
). تأكَّد من تم تفعيل "إحصاءات Google" في مشروع Firebase.في نافذة استيراد حِزمة Unity، انقر على استيراد.
الخطوة 2: بدء Crashlytics
يمكنك إنشاء نص برمجي جديد من C# ، ثم إضافته إلى عنصر
GameObject
في المشهد.افتح المشهد الأول، ثم أنشئ
GameObject
فارغًا باسمCrashlyticsInitializer
.انقر على إضافة مكوّن في المدقق للعنصر الجديد.
اختَر نص
CrashlyticsInit
البرمجي لإضافته إلى عنصر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: (لأجهزة Android فقط) الإعداد لتحميل الرموز
هذه الخطوة مطلوبة فقط لتطبيقات Android التي تستخدم IL2CPP.
بالنسبة إلى تطبيقات Android التي تستخدم الخلفية البرمجية Mono في Unity، ليست هناك حاجة إلى اتّباع هذه الخطوات.
بالنسبة إلى تطبيقات منصة Apple، ليست هذه الخطوات ضرورية لأنّ المكوّن الإضافي لـ Firebase Unity Editor يضبط مشروع Xcode تلقائيًا لتحميل الرموز.
يتضمّن الإصدار 8.6.1 من حزمة تطوير البرامج (SDK) Unity 8.6.1 أو الإصدارات الأحدث من Crashlytics تقارير الأعطال تلقائيًا، التي تسمح لـ "Crashlytics" بالإبلاغ عن Unity تلقائيًا IL2CPP على Android. ومع ذلك، لعرض عمليات تتبُّع تسلسُل استدعاء الدوال البرمجية للمكتبة الأصلية الأعطال في لوحة تحكم Crashlytics، ينبغي تحميل معلومات الرموز في وقت الإصدار باستخدام واجهة سطر الأوامر Firebase
لإعداد تحميل الرموز، اتّبِع التعليمات تثبيت واجهة سطر الأوامر Firebase
إذا سبق لك تثبيت واجهة برمجة التطبيقات، احرص على تحديثها إلى أحدث إصدار.
الخطوة 4: إنشاء مشروعك وتحميل الرموز
iOS+ (نظام Apple الأساسي)
من مربّع الحوار إعدادات الإنشاء، تصدِّر مشروعك إلى مساحة عمل Xcode.
أنشئ تطبيقك.
بالنسبة إلى منصات Apple، يعمل المكوّن الإضافي Firebase Unity Editor تلقائيًا على ضبط مشروع Xcode لإنشاء وتحميلملف رمز متوافق معCrashlytics وتحميله إلى خوادم Firebase لكل إصدار.
Android
من مربّع الحوار إعدادات الإصدار، نفِّذ أحد الإجراءات التالية:
التصدير إلى مشروع في "استوديو Android" لإنشاء مشروعك
يمكنك إنشاء حزمة APK مباشرةً من "أداة تحرير Unity".
قبل إنشاء الملف، تأكَّد من أنّ مربّع الاختيار Create symbols.zip سبق أن تم ضبطه. في مربع الحوار إعدادات التصميم.
بعد الانتهاء من عملية الإنشاء، أنشئ ملفًا للرموز المتوافقة مع Crashlytics وحمِّله إلى خوادم Firebase من خلال تنفيذ الأمر التالي Firebase CLI:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: رقم تعريف تطبيق Android في Firebase (وليس اسم الحزمة)
مثال على رقم تعريف تطبيق Android في Firebase:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/SYMBOLS: مسار ملف الرموز الذي تم إنشاؤه بواسطة واجهة سطر الأوامر
تم تصديره إلى مشروع في "استوديو Android": PATH/TO/SYMBOLS هو دليل
unityLibrary/symbols
، الذي يتم إنشاؤه في الدليل الجذر للمشروع الذي تم تصديره بعد إنشاء التطبيق من خلال Gradle أو "استوديو Android".تم إنشاء حزمة APK مباشرةً من داخل Unity: PATH/TO/SYMBOLS هو مسار ملف الرموز المضغوط الذي تم إنشاؤه في الدليل الجذر للمشروع عند انتهاء عملية الإنشاء (على سبيل المثال:
).myproject/myapp-1.0-v100.symbols.zip
عرض الخيارات المتقدمة لاستخدام أمر Firebase CLI لإنشاء ملفات الرموز وتحميلها
الإبلاغ الوصف --generator=csym
يستخدم أداة إنشاء ملفات الرموز cSYM القديمة بدلاً من أداة إنشاء Breakpad التلقائية
لا يُنصح باستخدامها. ننصح باستخدام المخطَّط التلقائي منشئ ملف رمز لوحة الإيقاف
--generator=breakpad
استخدام أداة إنشاء ملفات الرموز البرمجية Breakpad
يُرجى العِلم أنّ الطريقة التلقائية لإنشاء ملفات الرموز هي Breakpad. لا تستخدِم هذه العلامة إلا إذا أضفت
في تكوين تصميمك وتريد إلغاءه لاستخدام يمكنك بدلاً من ذلك استخدام لوحة الاستراحة.symbolGenerator { csym() }
--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: بالنسبة إلى تطبيقات Android التي تستخدم IL2CPP، شغِّل Firebase سطر الأوامر
crashlytics:symbols:upload
لتحميل ملف الرموز.
شغِّل تطبيقك. بعد تشغيل التطبيق، اطّلِع على سجلّ الجهاز وانتظِر إلى الاستثناء الذي سيتم تشغيله من
CrashlyticsTester
.iOS والإصدارات الأحدث: يمكنك عرض السجلات في اللوحة السفلية من Xcode.
Android: يمكنك عرض السجلات من خلال تنفيذ الأمر التالي في وحدة التحكّم:
adb logcat
.
انتقِل إلى لوحة بيانات Crashlytics في وحدة تحكّم Firebase للاطّلاع على الأعطال في الاختبار.
إذا أعدت تحميل وحدة التحكّم ولكن لم يظهر عطل الاختبار بعد ذلك بعد خمس دقائق، تفعيل ميزة تسجيل معلومات تصحيح الأخطاء لمعرفة ما إذا كان تطبيقك يرسل تقارير الأعطال.
وهذا كل ما في الأمر! تراقب ميزة "Crashlytics" الآن تطبيقك بحثًا عن أي أعطال. انتقِل إلى لوحة بيانات Crashlytics لعرض جميع تقاريرك وإحصاءاتك والاطّلاع عليها.
الخطوات التالية
- (يُنصح به) بالنسبة إلى تطبيقات Android التي تستخدم IL2CPP، يجب اتّباع الخطوات التالية: الحصول على مساعدة لتصحيح الأعطال الناتجة عن أخطاء الذاكرة الأصلية من خلال جمع تقارير GWP-ASan يمكن أن تكون هذه الأخطاء المتعلّقة بالذاكرة مرتبطة بتلف الذاكرة في تطبيقك، وهو السبب الرئيسي في ظهور ثغرات أمنية في التطبيق. للاستفادة من ميزة تصحيح الأخطاء هذه، احرص على أن يكون تطبيقك يستخدم أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Crashlytics لبرنامج Unity (الإصدار 10.7.0 أو إصدار أحدث) ولديه تم تفعيل GWP-ASan صراحةً (يتطلب منك تعديل بيان تطبيق Android).
- تخصيص إعداد تقرير الأعطال عن طريق إضافة خيارات إعداد التقارير والسجلات والمفاتيح وتتبع الأخطاء غير الفادحة.
- الدمج مع Google Play كي تتمكّن من فلترة تقارير أعطال تطبيق Android حسب Google Play المسار مباشرةً في لوحة بيانات Crashlytics ويتيح لك ذلك تركيز لوحة البيانات بشكل أفضل على إصدارات معيّنة.