تصف هذه البداية السريعة كيفية إعداد Firebase Crashlytics في تطبيقك باستخدام Firebase Crashlytics SDK بحيث يمكنك الحصول على تقارير أعطال شاملة في وحدة تحكم Firebase.
يتطلب إعداد Crashlytics مهامًا في كل من وحدة تحكم Firebase و IDE (مثل إضافة ملف تكوين Firebase و Crashlytics SDK). لإنهاء الإعداد ، ستحتاج إلى فرض تعطل تجريبي لإرسال تقرير التعطل الأول إلى Firebase.
قبل ان تبدأ
إذا لم تكن قد قمت بذلك بالفعل ، فأضف Firebase إلى مشروع Unity الخاص بك. إذا لم يكن لديك مشروع Unity ، فيمكنك تنزيل نموذج للتطبيق .
موصى به : للحصول على ميزات مثل المستخدمين الذين لم يتعرضوا للأعطال وسجلات التنقل وتنبيهات السرعة ، تحتاج إلى تمكين Google Analytics في مشروع Firebase.
إذا لم يتم تمكين Google Analytics لمشروع Firebase الحالي ، فيمكنك تمكين Google Analytics من علامة التبويب "التكامل" في > إعدادات المشروع في وحدة تحكم Firebase.
إذا كنت تنشئ مشروع Firebase جديدًا ، فقم بتمكين Google Analytics أثناء سير عمل إنشاء المشروع.
الخطوة 1 : أضف Crashlytics SDK إلى تطبيقك
لاحظ أنه عند تسجيل مشروع Unity الخاص بك في مشروع Firebase ، ربما تكون قد قمت بالفعل بتنزيل Firebase Unity SDK وإضافة حزمة Crashlytics.
قم بتنزيل Firebase Unity SDK ، ثم قم بفك ضغط SDK في مكان مناسب.
إن حزمة Firebase Unity SDK ليست خاصة بالنظام الأساسي.
في مشروع Unity المفتوح ، انتقل إلى Assets > Import Package > Custom Package .
من SDK غير المضغوط ، حدد استيراد Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).يمكنك أيضًا استيراد أي منتج آخر مدعوم من منتجات Firebase .
في نافذة استيراد حزمة الوحدة ، انقر فوق استيراد .
الخطوة 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 التي تستخدم الواجهة الخلفية للبرمجة النصية الأحادية من Unity ، فلن تكون هناك حاجة إلى هذه الخطوات.
بالنسبة إلى تطبيقات نظام Apple الأساسي ، هذه الخطوات غير ضرورية لأن المكون الإضافي 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.
بناء التطبيق الخاص بك.
بالنسبة لأنظمة Apple الأساسية ، يقوم المكون الإضافي Firebase Unity Editor تلقائيًا بتهيئة مشروع Xcode الخاص بك لإنشاء وتحميل ملف رمز متوافق مع Crashlytics إلى خوادم Firebase لكل إصدار.
ذكري المظهر
من مربع حوار Build Settings ، قم بأحد الإجراءات التالية:
تصدير إلى مشروع Android Studio لبناء مشروعك ؛ أو
قم ببناء APK الخاص بك مباشرة من Unity Editor.
قبل البناء ، تأكد من تحديد خانة الاختيار الخاصة بإنشاء رموز. zip في مربع حوار إعدادات البناء .
بمجرد انتهاء التصميم ، قم بإنشاء ملف رمز متوافق مع Crashlytics وقم بتحميله على خوادم Firebase عن طريق تشغيل أمر Firebase CLI التالي:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : معرف تطبيق Firebase Android (ليس اسم الحزمة الخاصة بك)
مثال معرّف تطبيق Firebase Android: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 : بالنسبة لتطبيقات Android التي تستخدم IL2CPP ، قم بتشغيل Firebase CLI
crashlytics:symbols:upload
لتحميل ملف الرمز الخاص بك.
قم بتشغيل التطبيق الخاص بك. بمجرد تشغيل تطبيقك ، راقب سجل الجهاز وانتظر حتى يتم تشغيل الاستثناء من
CrashlyticsTester
.iOS + : اعرض السجلات في الجزء السفلي من Xcode.
Android : اعرض السجلات عن طريق تشغيل الأمر التالي في الجهاز:
adb logcat
.
انتقل إلى لوحة معلومات Crashlytics بوحدة تحكم Firebase لمشاهدة اختبار تحطم الطائرة.
إذا قمت بتحديث وحدة التحكم وما زلت لا ترى تعطل الاختبار بعد خمس دقائق ، فقم بتمكين تسجيل تصحيح الأخطاء لمعرفة ما إذا كان تطبيقك يرسل تقارير الأعطال أم لا.
وهذا كل شيء! تراقب Crashlytics الآن تطبيقك بحثًا عن الأعطال. قم بزيارة لوحة معلومات Crashlytics لعرض جميع تقاريرك وإحصاءاتك والتحقيق فيها.
الخطوات التالية
- قم بتخصيص إعداد تقرير الأعطال عن طريق إضافة تقارير الاشتراك والسجلات والمفاتيح وتتبع الأخطاء غير الفادحة.
- تكامل مع Google Play حتى تتمكن من تصفية تقارير أعطال تطبيق Android الخاص بك عن طريق مسار Google Play مباشرة في لوحة معلومات Crashlytics. يتيح لك هذا التركيز بشكل أفضل على لوحة القيادة الخاصة بك على تصميمات محددة.