| בחירת פלטפורמה: | iOS+ Android Android NDK Flutter Unity |
במדריך הזה מוסבר איך מתחילים להשתמש ב-Firebase Crashlytics באפליקציה לפלטפורמות של אפל (לדוגמה, אפליקציה ל-iOS).
אחרי שמגדירים את Firebase Crashlytics SDK באפליקציה, אפשר לקבל דוחות קריסה מקיפים ב-Firebase Console. עם Crashlytics לפלטפורמות של אפל, מקבלים דוחות על קריסות ושגיאות לא קריטיות.
הנחיית AI לקבלת עזרה מבוססת-AI
כדי לקבל עזרה מ-AI, מעתיקים את הפרומפט שלמטה לסוכן התכנות מבוסס ה-AI (כמו Antigravity, Claude Code, Codex ו-Cursor). אתם יכולים להתאים אישית את הפרומפט ולשפר אותו בעזרת הסוכן. מידע מפורט על ההתקנה זמין במאמר בנושא סקילים של נציגים ב-Firebase.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up Firebase Crashlytics for my app.
לפני שמתחילים
ההגדרה של Crashlytics דורשת ביצוע משימות במסוף Firebase ובסביבת הפיתוח המשולבת (IDE) (למשל, הוספה של קובץ הגדרות Firebase ושל Crashlytics SDK). כדי לסיים את ההגדרה, צריך לגרום לקריסת בדיקה כדי לשלוח את דוח הקריסה הראשון ל-Firebase.
אם עדיין לא הוספתם את Firebase לפרויקט Apple, אתם צריכים להוסיף אותו. אם אין לכם אפליקציה של Apple, אתם יכולים להוריד אפליקציה לדוגמה.
מומלץ: כדי לקבל באופן אוטומטי יומני נתיבי משתמשים ולהבין את הפעולות שהמשתמשים מבצעים לפני קריסה או אירוע לא קטלני, צריך להפעיל את Google Analytics בפרויקט Firebase.
אם אתם יוצרים פרויקט חדש ב-Firebase, זכרו להפעיל את Google Analytics לפני שתסיימו ליצור את הפרויקט.
אם אתם משתמשים בפרויקט קיים ב-Firebase שלא הפעלתם בו את Google Analytics, אתם יכולים להפעיל אותו בדף
Settings (הגדרות) > Integrations (שילובים) במסוף Firebase.
הערה: יומני נתיבי מיקום זמינים בכל הפלטפורמות של אפל שנתמכות על ידי Crashlytics, למעט watchOS.
שלב 1: מוסיפים את Crashlytics SDK לאפליקציה
משתמשים ב-Swift Package Manager כדי להתקין ולנהל יחסי תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל File > Add Packages (קובץ > הוספת חבילות).
- כשמוצגת בקשה, מוסיפים את מאגר Firebase Apple platforms SDK:
- בוחרים בספרייה Crashlytics.
- כדי להשתמש ביומני נתיבי ניווט, צריך להוסיף לאפליקציה גם את Firebase SDK for Google Analytics. חשוב לוודא שGoogle Analytics מופעל בפרויקט Firebase.
- מוסיפים את הדגל
-ObjCלקטע Other Linker Flags בהגדרות הבנייה של יעד ההמרה. - (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, בדרך כלל בשיטה של delegate האפליקציה: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 צריך את קובצי סמלי הניפוי באגים (dSYM) של הפרויקט. בשלבים הבאים מוסבר איך להגדיר את Xcode כך שיפיק באופן אוטומטי קובצי dSYM, יעבד אותם ויעלה את הקבצים בכל פעם שתבנו את האפליקציה.
פותחים את סביבת העבודה של פרויקט Xcode, ואז בוחרים את קובץ הפרויקט בחלונית הניווט הימנית.
ברשימה TARGETS (יעדים), בוחרים את יעד הבנייה הראשי.
לוחצים על הכרטיסייה Build Settings (הגדרות בנייה) ומבצעים את השלבים הבאים כדי ש-Xcode ייצור קובצי dSYM עבור הבנייה.
לוחצים על הכול ומחפשים את
debug information format.מגדירים את פורמט מידע הניפוי באגים לערך
DWARF with dSYM Fileלכל סוגי הבנייה.
לוחצים על הכרטיסייה Build Phases (שלבי בנייה) ומבצעים את השלבים הבאים כדי ש-Xcode יוכל לעבד את קובצי ה-dSYM ולהעלות אותם.
לוחצים על > New Run Script Phase (שלב חדש של הפעלת תסריט).
חשוב לוודא ששלב Run Script החדש הוא שלב הבנייה האחרון בפרויקט, אחרת Crashlytics לא יוכל לעבד את קובצי ה-dSYM בצורה תקינה.
מרחיבים את הקטע החדש Run Script (הפעלת סקריפט).
בשדה התסריט (שנמצא מתחת לתווית 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)
ENABLE_USER_SCRIPT_SANDBOXING=YESו-ENABLE_DEBUG_DYLIB=YESבהגדרות הבנייה של הפרויקט, צריך לכלול את הפריטים הבאים:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
מידע מפורט יותר על קובצי 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
מבצעים Build ומריצים את האפליקציה ב-Xcode כשהדיבאגר של Xcode מנותק.
לוחצים על Build and then run the current scheme (גרסה ופועלת לפי הסכימה הנוכחית) כדי ליצור את האפליקציה במכשיר בדיקה או באמולטור.
מחכים עד שהאפליקציה פועלת, ואז לוחצים על הפסקת הפעלת הסכימה או הפעולה כדי לסגור את המופע הראשוני של האפליקציה. המופע הראשוני הזה כלל את מאתר הבאגים שמפריע ל-Crashlytics.
כדי לשלוח את דוח הקריסה הראשון של האפליקציה, צריך לגרום לקריסה בכוח:
פותחים את האפליקציה ממסך הבית של מכשיר הבדיקה או הסימולטור.
באפליקציה, לוחצים על הלחצן Test Crash (בדיקת קריסה) שהוספתם באמצעות הקוד שלמעלה.
אחרי שהאפליקציה קורסת, מריצים אותה שוב מ-Xcode כדי שהיא תוכל לשלוח את דוח הקריסה ל-Firebase.
במסוף Firebase, עוברים אל DevOps & Engagement > Crashlytics dashboard כדי לבדוק אם דוח קריסת הבדיקה מופיע.
אם רעננתם את המסוף ואחרי חמש דקות עדיין לא רואים את קריסת הבדיקה, צריך להפעיל את יומן ניפוי הבאגים כדי לבדוק אם האפליקציה שולחת דוחות קריסה.
זה הכול! Crashlytics עכשיו עוקב אחרי האפליקציה שלך כדי לזהות קריסות. כדי לראות את כל הדוחות והנתונים הסטטיסטיים ולבדוק אותם, אפשר להיכנס אל לוח הבקרה של Crashlytics.
השלבים הבאים
התאמה אישית של הגדרת דוח הקריסות על ידי הוספה של דיווח בהסכמה, יומנים, מפתחות ומעקב אחרי שגיאות לא קריטיות.
ייצוא הנתונים אל BigQuery או אל Cloud Logging לניתוח מתקדם ולתכונות מתקדמות, כמו יצירת שאילתות על הנתונים, בניית מרכזי בקרה בהתאמה אישית והגדרת התראות מותאמות אישית.