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

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

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

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

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

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

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

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

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

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

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

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

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

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

בעיות מוכרות

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

השלבים הבאים