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

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

אם עדיין לא עשיתם זאת, מוסיפים את Firebase לפרויקט ב-Apple.

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

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

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

  1. ב-Xcode, כשפרויקט האפליקציה פתוח, עוברים אל קובץ > הוספת חבילות.
  2. כשמופיעה בקשה, מוסיפים את המאגר של Firebase SDK לפלטפורמות Apple:
  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 שבהם משתמש הנציג של האפליקציה. לדוגמה, כדי להשתמש ב-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 בשיטה 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, עליכם ליצור נציג אפליקציה ולצרף אותו למבנה App דרך UIApplicationDelegateAdaptor או NSApplicationDelegateAdaptor. צריך גם להשבית את החלפת הקוד של נציג האפליקציה. מידע נוסף זמין בהוראות ל-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. עוברים אל לוח הבקרה לביצועים במסוף Firebase. הנתונים הראשוניים אמורים להופיע תוך כמה דקות.

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

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

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

    1. ב-Xcode (גרסה 15.2 ומעלה), בוחרים באפשרות Product‏ > Scheme‏ > Edit scheme.
    2. בתפריט הימני, בוחרים באפשרות הפעלה ואז בכרטיסייה ארגומנטים.
    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: (אופציונלי) הוספת מעקב מותאם אישית לקוד ספציפי

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

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

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

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

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

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

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

בעיות מוכרות

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

השלבים הבאים