תחילת העבודה עם Performance Monitoring בפלטפורמות של Apple

לפני שמתחילים

אם עדיין לא הוספתם את Firebase לפרויקט Apple, אתם צריכים להוסיף אותו.

שלב 1: מוסיפים את Performance Monitoring לאפליקציה

אחרי שמוסיפים את ה-SDK של Performance Monitoring, המערכת של Firebase מתחילה לאסוף באופן אוטומטי נתונים על רינדור המסך של האפליקציה, נתונים שקשורים למחזור החיים של האפליקציה (כמו זמן ההפעלה של האפליקציה) ונתונים על בקשות HTTP/S לאחזור מהרשת.

משתמשים ב-Swift Package Manager כדי להתקין ולנהל את יחסי התלות של Firebase.

  1. ב-Xcode, כשהפרויקט של האפליקציה פתוח, עוברים אל File > Add Packages (קובץ > הוספת חבילות).
  2. כשמוצגת בקשה, מוסיפים את מאגר ה-SDK של Firebase לפלטפורמות של אפל:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. בוחרים את הספרייה Performance Monitoring.
  5. מוסיפים את הדגל -ObjC לקטע Other Linker Flags (דגלים אחרים של מקשרים) בהגדרות ה-build של היעד.
  6. אחרי שתסיימו, פלטפורמת Xcode תתחיל לטפל ביחסי התלות ולהוריד אותם באופן אוטומטי ברקע.

בשלב הבא, מגדירים את מודול Firebase:

  1. מייבאים את המודול FirebaseCore אל UIApplicationDelegate, וגם כל מודול Firebase אחר שבו משתמש ה-app delegate. לדוגמה, כדי להשתמש ב-Cloud Firestore וב-Authentication:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. מגדירים מופע משותף של FirebaseApp ב-method‏ application(_:didFinishLaunchingWithOptions:) של הנציג של האפליקציה:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. אם אתם משתמשים ב-SwiftUI, אתם צריכים ליצור נציג של האפליקציה ולצרף אותו ל-struct של App באמצעות UIApplicationDelegateAdaptor או NSApplicationDelegateAdaptor. צריך גם להשבית את ה-swizzling של נציג האפליקציה. מידע נוסף זמין בהוראות של SwiftUI.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. מקמפלים מחדש את האפליקציה.

שלב 2: יוצרים אירועי ביצועים כדי להציג נתונים ראשוניים

מערכת Firebase מתחילה לעבד את האירועים אחרי שמוסיפים את ה-SDK לאפליקציה. אם אתם עדיין מפתחים באופן מקומי, אתם צריכים לבצע פעולות באפליקציה כדי ליצור אירועים לאיסוף ולעיבוד ראשוני של נתונים.

  1. ממשיכים לפתח את האפליקציה באמצעות סימולטור או מכשיר בדיקה.

  2. כדי ליצור אירועים, מעבירים את האפליקציה בין הרקע לחזית כמה פעמים, מבצעים פעולות באפליקציה על ידי ניווט בין מסכים ו/או מפעילים בקשות לאחזור מהרשת.

  3. נכנסים למרכז הבקרה Performance במסוף Firebase. הנתונים הראשוניים אמורים להופיע תוך כמה דקות.

    אם הנתונים הראשוניים לא מוצגים, כדאי לעיין בטיפים לפתרון בעיות.

שלב 3: (אופציונלי) הצגת הודעות ביומן של אירועי ביצועים

  1. מפעילים את הרישום של יומן ניפוי באגים באופן הבא:

    1. ב-Xcode (גרסה 26.2 ומעלה), לוחצים על Product (מוצר) > Scheme (סכימה) > Edit scheme (עריכת הסכימה).
    2. בתפריט השמאלי, לוחצים על Run (הפעלה) ואז על הכרטיסייה Arguments (ארגומנטים).
    3. בקטע Arguments Passed on Launch (ארגומנטים שהערך שלהם נקבע בהפעלה) מוסיפים את הערך -FIRDebugEnabled.
  2. בודקים אם יש הודעות שגיאה בהודעות היומן.

  3. ‫Performance Monitoring מתייג את הודעות היומן שלו באמצעות Firebase/Performance כדי שתוכלו לסנן את הודעות היומן.

  4. חפשו את סוגי היומנים הבאים, שמציינים ש-Performance Monitoring מתעד אירועי ביצועים:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. לוחצים על כתובת ה-URL כדי לראות את הנתונים במסוף Firebase. יכול להיות שיעברו כמה רגעים עד שהנתונים יתעדכנו במרכז הבקרה.

אם האפליקציה לא מתעדת אירועי ביצועים, כדאי לעיין בטיפים לפתרון בעיות.

שלב 4: (אופציונלי) הוספת מעקב מותאם אישית לקוד ספציפי

כדי לעקוב אחרי נתוני ביצועים שמשויכים לקוד ספציפי באפליקציה, אתם יכולים להוסיף מעקבים אחר קוד בהתאמה אישית.

בעזרת מעקב אחר קוד בהתאמה אישית, אתם יכולים למדוד כמה זמן לוקח לאפליקציה להשלים משימה ספציפית או קבוצת משימות, כמו טעינה של קבוצת תמונות או שליחת שאילתה למסד הנתונים. מדד ברירת המחדל למעקב אחר קוד בהתאמה אישית הוא משך הזמן, אבל אפשר גם להוסיף מדדים מותאמים אישית, כמו מציאה במטמון (cache hit) ואזהרות לגבי זיכרון.

בקוד, אתם מגדירים את ההתחלה והסוף של מעקב אחר קוד בהתאמה אישית (ומוסיפים את המדדים המותאמים אישית הרצויים) באמצעות ה-API שסופק על ידי ה-SDK של Performance Monitoring.

במאמר הוספת מעקב אחר קוד ספציפי מוסבר בהרחבה על התכונות האלה ואיך להוסיף אותן לאפליקציה.

שלב 5: פורסים את האפליקציה ובודקים את התוצאות

אחרי שמאמתים את Performance Monitoring באמצעות הסימולטור של Xcode ומכשיר בדיקה אחד או יותר, אפשר לפרוס את הגרסה המעודכנת של האפליקציה למשתמשים.

אפשר לעקוב אחרי נתוני הביצועים בלוח הבקרה Performance במסוף Firebase.

בעיות מוכרות

  • ל-Performance Monitoring יש בעיות תאימות ידועות עם GTMSQLite. מומלץ לא להשתמש ב-Performance Monitoring עם אפליקציות שמשתמשות ב-GTMSQLite.
  • שינוי פונקציונליות של שיטה אחרי קריאה ל-FirebaseApp.configure() עלול להפריע ל-SDK של Performance Monitoring.
  • בעיות ידועות בסימולטור של iOS 8.0-8.2 מונעות מ-Performance Monitoring לתעד אירועי ביצועים. הבעיות האלה תוקנו ב-iOS 8.3 Simulator ובגרסאות מאוחרות יותר.
  • חיבורים שנוצרו באמצעות backgroundSessionConfiguration של NSURLSession יציגו זמני חיבור ארוכים מהצפוי. החיבורים האלה מתבצעים מחוץ לתהליך, והתזמונים משקפים אירועי קריאה חוזרת (callback) בתוך התהליך.

השלבים הבאים