| בחירת פלטפורמה: | iOS+ Android Android NDK Flutter Unity |
במדריך הזה מוסבר איך להתחיל להשתמש ב-Firebase Crashlytics בפרויקט ב-Unity.
אחרי שמגדירים את ה-SDK של Firebase Crashlytics באפליקציה, אפשר לקבל דוחות קריסה מקיפים במסוף Firebase.
כדי להגדיר את Crashlytics, צריך לבצע משימות גם במסוף Firebase וגם בסביבת הפיתוח המשולבת (IDE) (למשל, הוספת קובץ תצורה של Firebase ו-SDK של Crashlytics). כדי לסיים את ההגדרה, צריך לאלץ קריסת בדיקה כדי לשלוח את דוח הקריסה הראשון ל-Firebase.
לפני שמתחילים
אם עדיין לא הוספתם את Firebase לפרויקט Unity, אתם צריכים להוסיף אותו. אם אין לכם פרויקט ב-Unity, אתם יכולים להוריד אפליקציה לדוגמה.
מומלץ: כדי לקבל באופן אוטומטי יומני פעולות משתמש שיעזרו לכם להבין את פעולות המשתמשים שהובילו לקריסה, לשגיאה לא חמורה או לאירוע ANR, אתם צריכים להפעיל את Google Analytics בפרויקט Firebase.
אם אתם יוצרים פרויקט חדש ב-Firebase, זכרו להפעיל את Google Analytics לפני שתסיימו ליצור את הפרויקט.
אם אתם משתמשים בפרויקט קיים ב-Firebase שלא הפעלתם בו את Google Analytics, אתם יכולים להפעיל אותו בדף
Settings > Integrations במסוף Firebase.
שלב 1: מוסיפים את ה-SDK של Crashlytics לאפליקציה
שימו לב: יכול להיות שכבר הורדתם את ה-SDK של Firebase Unity והוספתם את החבילות שמתוארות בשלבים הבאים כשרשמתם את הפרויקט ב-Unity לפרויקט ב-Firebase.
מורידים את Firebase Unity SDK, ואז מחלצים את קובצי ה-SDK למיקום נוח. Firebase Unity SDK לא ספציפי לפלטפורמה.
בפרויקט Unity הפתוח, עוברים אל Assets > Import Package > Custom Package.
מתוך קובץ ה-SDK שחילצתם, בוחרים לייבא את ה-SDK של Crashlytics (
FirebaseCrashlytics.unitypackage).כדי להשתמש ביומני פעולות משתמש, צריך להוסיף לאפליקציה גם את Firebase SDK for Google Analytics (
FirebaseAnalytics.unitypackage). חשוב לוודא שGoogle Analytics מופעל בפרויקט ב-Firebase.בחלון ייבוא חבילת Unity, לוחצים על ייבוא.
שלב 2: הפעלה של Crashlytics
יוצרים סקריפט חדש ב-C# ומוסיפים אותו ל-
GameObjectבסצנה.פותחים את הסצנה הראשונה ויוצרים
GameObjectריק בשםCrashlyticsInitializer.לוחצים על Add Component (הוספת רכיב) ב-Inspector (כלי הבדיקה) של האובייקט החדש.
בוחרים את הסקריפט של
CrashlyticsInitכדי להוסיף אותו לאובייקטCrashlyticsInitializer.
מאתחלים את Crashlytics ב-method
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, אין צורך לבצע את השלבים האלה.
באפליקציות לפלטפורמות של אפל, לא צריך לבצע את השלבים האלה כי הפלאגין של Firebase Unity Editor מגדיר באופן אוטומטי את פרויקט Xcode להעלאת סמלים.
ערכת ה-SDK של Crashlytics ל-Unity (גרסה 8.6.1 ואילך) כוללת באופן אוטומטי דיווח על קריסות של NDK, שמאפשר ל-Crashlytics לדווח באופן אוטומטי על קריסות של IL2CPP ב-Unity ב-Android. עם זאת, כדי לראות דוחות קריסה עם סמלים של קריסות בספריית Native במרכז הבקרה של Crashlytics, צריך להעלות את פרטי הסמלים בזמן ה-build באמצעות ה-CLI של Firebase.
כדי להגדיר העלאת סמלים, פועלים לפי ההוראות להתקנת ה-CLI של Firebase.
אם כבר התקנתם את ה-CLI, ודאו שעדכנתם אותו לגרסה העדכנית.
שלב 4: בניית הפרויקט והעלאת סמלים
iOS+ (הפלטפורמה של אפל)
בתיבת הדו-שיח Build Settings, מייצאים את הפרויקט לסביבת עבודה של Xcode.
יוצרים את האפליקציה.
בפלטפורמות של אפל, הפלאגין של Firebase Unity Editor מגדיר באופן אוטומטי את פרויקט Xcode כך שייצור קובץ סמלים שתואם ל-Crashlytics ויעלה אותו לשרתי Firebase בכל גרסה.
Android
בתיבת הדו-שיח Build Settings, מבצעים אחת מהפעולות הבאות:
לייצא לפרויקט ב-Android Studio כדי ליצור את הפרויקט.
יוצרים את ה-APK ישירות מ-Unity Editor.
לפני שיוצרים את ה-build, מוודאים שתיבת הסימון Create symbols.zip מסומנת בתיבת הדו-שיח Build Settings.
אחרי שה-build מסתיים, יוצרים קובץ סמלים שתואם ל-Crashlytics ומעלים אותו לשרתי Firebase באמצעות הפקודה הבאה ב-CLI של Firebase:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: מזהה אפליקציית Android שלכם ב-Firebase (לא שם החבילה)
דוגמה למזהה אפליקציית Android ב-Firebase: 1:567383003300:android:17104a2ced0c9b9bPATH/TO/SYMBOLS: הנתיב לקובץ הסמלים שנוצר על ידי ה-CLI
ייצוא לפרויקט Android Studio – PATH/TO/SYMBOLS היא הספרייה
unityLibrary/symbols, שנוצרת בתיקיית השורש של הפרויקט שיוצא אחרי שיוצרים את האפליקציה באמצעות Gradle או Android Studio.יצרתם את ה-APK ישירות מתוך Unity – PATH/TO/SYMBOLS הוא הנתיב של קובץ הסמלים הדחוס שנוצר בספריית השורש של הפרויקט כשה-build הסתיים (לדוגמה:
).myproject/myapp-1.0-v100.symbols.zip
אפשרויות מתקדמות לשימוש בפקודת ה-CLI של Firebase ליצירה ולהעלאה של קובץ סמלים
Flag תיאור --generator=csymשימוש במחולל קובצי הסמלים cSYM מדור קודם במקום במחולל ברירת המחדל של Breakpad
לא מומלץ לשימוש. אנחנו ממליצים להשתמש במחולל קובצי הסמלים של Breakpad שמוגדר כברירת מחדל.
--generator=breakpadשימוש במחולל קובצי הסמלים של Breakpad
שימו לב שברירת המחדל ליצירת קובץ סמלים היא Breakpad. השתמשו בדגל הזה רק אם הוספתם את
בתצורת ה-build ואתם רוצים לשנות אותה כדי להשתמש ב-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 של ה-CLI
crashlytics:symbols:uploadכדי להעלות את קובץ הסמלים.
מפעילים את האפליקציה. כשהאפליקציה פועלת, עוקבים אחרי קובץ היומן במכשיר וממתינים עד שהחריגה תופעל מ-
CrashlyticsTester.iOS+: הצגת היומנים בחלונית התחתונה של Xcode.
Android: כדי להציג את היומנים, מריצים את הפקודה הבאה בטרמינל:
adb logcat.
במסוף Firebase, נכנסים לדף DevOps & Engagement (DevOps ומעורבות) > לוח הבקרה של Crashlytics כדי לבדוק אם דוח הקריסה לדוגמה התקבל.
אם רעננתם את המסוף ואתם עדיין לא רואים את הקריסה לבדיקה אחרי חמש דקות, הפעילו את יומן ניפוי הבאגים כדי לבדוק אם האפליקציה שולחת דוחות קריסה.
זה הכול! עכשיו Crashlytics עוקב אחרי קריסות באפליקציה שלך. בלוח הבקרה של Crashlytics אפשר לראות את כל הדוחות והנתונים הסטטיסטיים ולחקור אותם.
השלבים הבאים
(מומלץ) באפליקציות ל-Android שמשתמשות ב-IL2CPP, אפשר לקבל עזרה בניפוי באגים של קריסות שנגרמו בגלל שגיאות זיכרון נייטיב באמצעות איסוף דוחות GWP-ASan. השגיאות האלה שקשורות לזיכרון יכולות להיות קשורות לפגיעה בזיכרון באפליקציה, שהיא הגורם העיקרי לפרצות אבטחה באפליקציות. כדי להשתמש בתכונת ניפוי הבאגים הזו, צריך לוודא שהאפליקציה משתמשת בגרסה העדכנית של ה-SDK של Crashlytics ל-Unity (גרסה 10.7.0 ואילך) ושהתכונה GWP-ASan מופעלת באופן מפורש (לשם כך צריך לשנות את קובץ המניפסט של האפליקציה ל-Android).
התאמה אישית של הגדרת דוח הקריסות על ידי הוספת דיווח בהצטרפות, יומנים, מפתחות ומעקב אחר שגיאות לא קריטיות.
ייצוא הנתונים אל BigQuery או אל Cloud Logging לצורך ניתוח מתקדם ושימוש בתכונות כמו שאילתות על הנתונים, יצירת מרכזי בקרה בהתאמה אישית והגדרת התראות בהתאמה אישית.