תחילת העבודה עם 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 (גרסה 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: (אופציונלי) הוספת מעקב מותאם אישית לקוד ספציפי

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

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

בקוד, מגדירים את ההתחלה והסוף של מעקב קוד בהתאמה אישית (ומוסיפים מדדים בהתאמה אישית שרוצים) באמצעות ה-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 Simulator ובגרסאות מאוחרות יותר.
  • חיבורים שנוצרו באמצעות backgroundSessionConfiguration של NSURLSession יציגו זמני חיבור ארוכים מהצפוי. החיבורים האלה מבוצעים מחוץ לתהליך, והתזמונים משקפים אירועי קריאה חוזרת בתוך התהליך.

השלבים הבאים