במדריך המהיר הזה נסביר איך להגדיר את Firebase Crashlytics באפליקציה באמצעות Firebase Crashlytics SDK, כדי שתוכלו לקבל דוחות מקיפים על קריסות במסוף Firebase.
כדי להגדיר את Crashlytics, צריך לבצע משימות גם במסוף Firebase וגם בסביבת הפיתוח המשולבת (IDE) (למשל, הוספת קובץ תצורה של Firebase ו-SDK של Crashlytics). כדי לסיים את ההגדרה, תצטרכו לאלץ קריסה לצורך בדיקה כדי לשלוח את דוח הקריסה הראשון ל-Firebase.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט שלכם ב-Apple. אם אין לכם אפליקציה ל-Apple, תוכלו להוריד אפליקציה לדוגמה.
מומלץ: כדי לקבל באופן אוטומטי יומני נתיב כדי להבין את הפעולות של המשתמשים שהובילו לקריסה, לאירוע לא קטלני או לאירוע ANR, צריך להפעיל את Google Analytics בפרויקט Firebase.
אם Google Analytics לא מופעל בפרויקט הקיים ב-Firebase, תוכלו להפעיל אותו בכרטיסייה Integrations (שילובים) בקטע
במסוף > Project settingsFirebase.Google Analytics אם אתם יוצרים פרויקט חדש ב-Firebase, צריך להפעיל את Google Analytics במהלך תהליך יצירת הפרויקט.
לתשומת ליבכם: יומני נתיב הניווט זמינים לכל פלטפורמות Apple שנתמכות על ידי Crashlytics, מלבד watchOS.
שלב 1: מוסיפים את ה-SDK של Crashlytics לאפליקציה
שימוש ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל קובץ > הוספת חבילות.
- כשמופיעה בקשה, מוסיפים את המאגר של Firebase SDK לפלטפורמות Apple:
- בוחרים את הספרייה Crashlytics.
- כדי להשתמש ביומני נתיב ניווט, צריך להוסיף לאפליקציה גם את Firebase SDK for Google Analytics. חשוב לוודא שGoogle Analytics מופעל בפרויקט Firebase.
- מוסיפים את הדגל
-ObjC
לקטע Other Linker Flags (דגלים אחרים של קישור) בהגדרות ה-build של היעד. - (macOS בלבד) ב-
Info.plist
, מוסיפים את המפתחNSApplicationCrashOnExceptions
ומגדירים אותו כ-YES
. - בסיום, Xcode יתחיל לפתור את יחסי התלות ולהוריד אותם באופן אוטומטי ברקע.
https://github.com/firebase/firebase-ios-sdk.git
בשלב הבא מגדירים את המודול של Firebase:
מייבאים את מודול Firebase ב-struct
App
או ב-UIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
מגדירים מופע משותף של
FirebaseApp
, בדרך כלל בשיטהapplication(_:didFinishLaunchingWithOptions:)
של הנציג של האפליקציה:Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
שלב 2: מגדירים את Xcode להעלאה אוטומטית של קובצי dSYM
כדי ליצור דוחות קריסה שאנשים יכולים לקרוא, Crashlytics צריך את קובצי ה-debug symbol (dSYM) של הפרויקט. בשלבים הבאים מוסבר איך להגדיר את Xcode לייצור קובצי dSYM באופן אוטומטי, לעבד אותם ולהעלות את הקבצים בכל פעם שיוצרים את האפליקציה.
פותחים את סביבת העבודה של הפרויקט ב-Xcode ובוחרים את קובץ הפרויקט בתפריט הניווט הימני.
ברשימה TARGETS, בוחרים את יעד ה-build הראשי.
לוחצים על הכרטיסייה Build Settings ומבצעים את השלבים הבאים כדי ש-Xcode ייצור קובצי dSYM לגרסאות ה-build.
לוחצים על הכול ומחפשים את
debug information format
.מגדירים את Debug Information Format לערך
DWARF with dSYM File
לכל סוגי ה-build.
לוחצים על הכרטיסייה Build Phases ומבצעים את השלבים הבאים כדי ש-Xcode יוכל לעבד את קובצי ה-dSYM ולהעלות את הקבצים.
לוחצים על
> New Run Script Phase.חשוב לוודא שהשלב החדש הפעלת סקריפט הוא שלב ה-build האחרון של הפרויקט. אחרת, Crashlytics לא יוכל לעבד קובצי dSYM בצורה תקינה.
מרחיבים את הקטע החדש הרצת סקריפט.
בשדה הסקריפט (שנמצא מתחת לתווית Shell), מוסיפים את סקריפט ההפעלה הבא.
הסקריפט הזה מעבד את קובצי ה-dSYM של הפרויקט ומעלה את הקבצים אל Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
בקטע Input Files, מוסיפים את הנתיבים למיקומים של הקבצים הבאים:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
למידע מפורט יותר על קובצי dSYM ועל Crashlytics (כולל איך מעלים קובצי dSYM באופן ידני), אפשר לעיין במאמר קבלת דוחות קריסה ללא ערפול.
שלב 3: מאלצים קריסה לצורך בדיקה כדי לסיים את ההגדרה
כדי לסיים את ההגדרה של Crashlytics ולראות נתונים ראשוניים בלוח הבקרה Crashlytics במסוף Firebase, צריך לאלץ קריסה לצורך בדיקה.
מוסיפים לאפליקציה קוד שבעזרתו אפשר לאלץ קריסה לצורך בדיקה.
אפשר להשתמש בקוד הבא כדי להוסיף לאפליקציה לחצן שגורם לקריסה כשהוא לוחצים עליו. הלחצן מסומן בתווית 'בדיקת קריסה'.
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
פיתוח והרצה של האפליקציה ב-Xcode כשמתקן הבאגים של Xcode מנותק.
לוחצים על
Build and then run the current scheme כדי ליצור את האפליקציה במכשיר בדיקה או בסימולטור.ממתינים עד שהאפליקציה פועלת, ואז לוחצים על Crashlytics.
Stop running the scheme or action כדי לסגור את המופע הראשוני של האפליקציה. המופע הראשוני הזה כלל את הכלי לניפוי באגים שמפריע ל-
מפעילים את קריסת הבדיקה כדי לשלוח את דוח הקריסה הראשון של האפליקציה:
פותחים את האפליקציה ממסך הבית של מכשיר הבדיקה או הסימולטור.
באפליקציה, לוחצים על הלחצן 'בדיקת קריסה' שהוספתם באמצעות הקוד שלמעלה.
אחרי שהאפליקציה קורסת, מריצים אותה שוב מ-Xcode כדי שהיא תוכל לשלוח את דוח הקריסה ל-Firebase.
עוברים אל מרכז הבקרה של Crashlytics במסוף Firebase כדי לראות את קריסה של הבדיקה.
אם רעננתם את המסוף ועדיין לא ראיתם את קריסה הבדיקה אחרי חמש דקות, הפעילו את יומני ניפוי הבאגים כדי לראות אם האפליקציה שולחת דוחות קריסה.
זהו, סיימתם. Crashlytics עוקב עכשיו אחרי האפליקציה שלך כדי לזהות קריסות. אתם יכולים להיכנס אל לוח הבקרה Crashlytics כדי להציג את כל הדוחות והנתונים הסטטיסטיים ולנתח אותם.
השלבים הבאים
- התאמה אישית של הגדרת דוח הקריסה: אפשר להוסיף דיווח על הסכמה, יומנים, מפתחות ומעקב אחרי שגיאות לא קטלניות.