Wprowadzenie do Monitorowania wydajności na platformach Apple

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiono, dodaj Firebase do projektu Apple.

Krok 1. Dodaj Performance Monitoring do aplikacji

Po dodaniu Performance Monitoringpakietu SDK Firebase automatycznie rozpocznie zbieranie danych o renderowaniu ekranu aplikacji, danych związanych z cyklem życia aplikacji (np. czasu uruchamiania aplikacji) oraz danych o żądaniach sieciowych HTTP/S.

Do instalowania zależności Firebase i zarządzania nimi używaj Swift Package Manager.

  1. W Xcode otwórz projekt aplikacji i kliknij File > Add Packages (Plik > Dodaj pakiety).
  2. Gdy pojawi się odpowiedni komunikat, dodaj repozytorium pakietu SDK Firebase na platformy Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę Performance Monitoring.
  5. Dodaj flagę -ObjC do sekcji Other Linker Flags (Inne flagi linkera) w ustawieniach kompilacji elementu docelowego.
  6. Po zakończeniu Xcode automatycznie zacznie przetwarzać i pobierać zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł FirebaseCore w pliku UIApplicationDelegate, a także inne moduły Firebase używane przez delegata aplikacji. Aby na przykład użyć właściwości Cloud Firestore i 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. Skonfiguruj FirebaseApp współdzielone wystąpienie w metodzie application(_:didFinishLaunchingWithOptions:) delegata aplikacji:

    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. Jeśli używasz SwiftUI, musisz utworzyć delegata aplikacji i dołączyć go do struktury App za pomocą UIApplicationDelegateAdaptor lub NSApplicationDelegateAdaptor. Musisz też wyłączyć zamianę delegata aplikacji. Więcej informacji znajdziesz w instrukcjach dotyczących 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. Ponownie skompiluj aplikację.

Krok 2. Generowanie zdarzeń związanych z wydajnością na potrzeby wyświetlania wstępnych danych

Firebase rozpocznie przetwarzanie zdarzeń po dodaniu pakietu SDK do aplikacji. Jeśli nadal pracujesz nad aplikacją lokalnie, wejdź z nią w interakcję, aby wygenerować zdarzenia na potrzeby wstępnego zbierania i przetwarzania danych.

  1. Kontynuuj tworzenie aplikacji za pomocą symulatora lub urządzenia testowego.

  2. Wygeneruj zdarzenia, przełączając aplikację między tłem a pierwszym planem kilka razy, wchodząc z nią w interakcję przez poruszanie się po ekranach lub wywołując żądania sieciowe.

  3. Otwórz panel Skuteczność w konsoli Firebase. Pierwsze dane powinny pojawić się w ciągu kilku minut.

    Jeśli nie widzisz wyświetlonych danych początkowych, zapoznaj się z wskazówkami dotyczącymi rozwiązywania problemów.

Krok 3. (Opcjonalnie) Wyświetl komunikaty dziennika dotyczące zdarzeń związanych z wydajnością

  1. Włącz logowanie debugowania w ten sposób:

    1. W Xcode (minimum v26.2) kliknij Product (Produkt) > Scheme (Schemat) > Edit scheme (Edytuj schemat).
    2. W menu po lewej stronie kliknij Uruchom, a następnie wybierz kartę Argumenty.
    3. W sekcji Arguments Passed on Launch (Argumenty przekazywane przy uruchamianiu) dodaj -FIRDebugEnabled.
  2. Sprawdź, czy w komunikatach dziennika nie ma komunikatów o błędach.

  3. Performance Monitoring oznacza komunikaty logu tagiem Firebase/Performance, dzięki czemu możesz je filtrować.

  4. Sprawdź, czy występują te typy logów, które wskazują, że Performance Monitoring rejestruje zdarzenia związane z wydajnością:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Kliknij adres URL, aby wyświetlić dane w konsoli Firebase. Aktualizacja danych w panelu może potrwać kilka chwil.

Jeśli Twoja aplikacja nie rejestruje zdarzeń związanych z wydajnością, zapoznaj się z wskazówkami dotyczącymi rozwiązywania problemów.

Krok 4. (Opcjonalnie) Dodaj niestandardowe monitorowanie określonego kodu

Aby monitorować dane o skuteczności powiązane z określonym kodem w aplikacji, możesz instrumentować niestandardowe ślady kodu.

Dzięki śledzeniu kodu niestandardowego możesz mierzyć, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, np. wczytanie zestawu obrazów lub wysłanie zapytania do bazy danych. Domyślne dane śledzenia kodu niestandardowego to jego czas trwania, ale możesz też dodać dane niestandardowe, takie jak trafienia w pamięci podręcznej i ostrzeżenia o pamięci.

W kodzie definiujesz początek i koniec śledzenia kodu niestandardowego (i dodajesz dowolne niestandardowe dane) za pomocą interfejsu API udostępnianego przez pakiet SDK Performance Monitoring.

Więcej informacji o tych funkcjach i sposobie dodawania ich do aplikacji znajdziesz w artykule Dodawanie monitorowania konkretnego kodu.

Krok 5. Wdróż aplikację, a potem sprawdź wyniki

Po sprawdzeniu Performance Monitoring za pomocą symulatora Xcode i co najmniej 1 urządzenia testowego możesz wdrożyć zaktualizowaną wersję aplikacji dla użytkowników.

Dane o skuteczności możesz monitorować w panelu Skuteczność w Firebase konsoli.

Znane problemy

  • Performance Monitoring ma znane problemy ze zgodnością z GTMSQLite. Nie zalecamy używania Performance Monitoring w przypadku aplikacji, które korzystają z GTMSQLite.
  • Podmiana metody po wywołaniu funkcji FirebaseApp.configure() może zakłócać działanie pakietu SDK Performance Monitoring.
  • Znane problemy z symulatorem iOS 8.0–8.2 uniemożliwiają Performance Monitoring rejestrowanie zdarzeń związanych z wydajnością. Te problemy zostały rozwiązane w symulatorze iOS 8.3 i nowszych wersjach.
  • Połączenia nawiązywane za pomocą funkcji backgroundSessionConfiguration w klasie NSURLSession będą miały dłuższy niż oczekiwany czas połączenia. Te połączenia są wykonywane poza procesem, a czasy odzwierciedlają zdarzenia wywołania zwrotnego w procesie.

Dalsze kroki