במדריך למתחילים הזה מוסבר איך להגדיר את Firebase Crashlytics באפליקציה עם ה-SDK Firebase Crashlytics כדי לקבל נתונים על קריסות מקיפות דוחות במסוף Firebase.
כדי להגדיר את Crashlytics, נדרשות משימות גם במסוף Firebase וגם בסביבת הפיתוח המשולבת (IDE) (למשל, הוספת קובץ תצורה של Firebase ו-Crashlytics) SDK). כדי לסיים את ההגדרה, תצטרכו לאלץ קריסה לצורך בדיקה כדי לשלוח את דוח הקריסה הראשון ל-Firebase.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מוסיפים את Firebase ל-Apple פרויקט. אם אין לך אפליקציה של Apple, אתה יכול להוריד אפליקציה לדוגמה.
מומלץ: כדי לקבל באופן אוטומטי יומני מיקומים כדי להבין את פעולות המשתמשים המובילות לקריסה, אירוע לא חמור או ANR, עליך להפעיל את Google Analytics בפרויקט Firebase.
אם Google Analytics לא מופעל בפרויקט הקיים ב-Firebase, תוכלו להפעיל אותו בכרטיסייה Integrations (שילובים) בקטע
במסוף > Project settingsFirebase. אם אתם יוצרים פרויקט חדש ב-Firebase, צריך להפעיל את Google Analytics במהלך יצירת הפרויקט.
שימו לב שיומני נתיבי ניווט זמינים עבור כל פלטפורמות Apple שנתמכות על ידי Crashlytics מלבד WatchOS.
שלב 1: מוסיפים את ה-SDK של Crashlytics לאפליקציה
שימוש ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות של Firebase.
- ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל File > (קובץ >) הוספת חבילות.
- כשמופיעה בקשה, מוסיפים את המאגר של 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 במבנה
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 (הגדרות Build) ולאחר מכן מבצעים את השלבים הבאים כדי Xcode מייצרת dSYM עבור גרסאות ה-build שלכם.
לוחצים על הכול ומחפשים את
debug information format
.יש להגדיר את Debug Information Format (פורמט המידע על ניפוי באגים) ל-
DWARF with dSYM File
בכל סוגי ה-build.
לוחצים על הכרטיסייה Build Phases ומבצעים את השלבים הבאים כדי ש-Xcode יוכל לעבד את קובצי ה-dSYM ולהעלות את הקבצים.
לוחצים על
> שלב הרצת סקריפט חדש.צריך לוודא ששלב הרצת הסקריפט החדש הוא ה-build האחרון בפרויקט שלב; אחרת, Crashlytics לא יכול לעבד כראוי קובצי dSYM.
מרחיבים את הקטע החדש הרצת סקריפט.
בשדה הסקריפט (שנמצא מתחת לתווית Shell), מוסיפים את סקריפט ההפעלה הבא.
הסקריפט הזה מעבד את קובצי ה-dSYM של הפרויקט ומעלה את הקבצים אל Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
בקטע קובצי קלט, מוסיפים את הנתיבים של המיקומים של הקבצים הבאים:
${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 כל הדוחות והנתונים הסטטיסטיים.
השלבים הבאים
- התאמה אישית של הגדרת דוח הקריסה: הוספת דיווח על הסכמה, יומנים, מפתחות ומעקב אחרי שגיאות לא קטלניות.