Wprowadzenie do Monitorowania wydajności na platformach Apple

Zanim zaczniesz

Dodaj Firebase do swojego projektu Apple, chyba że masz to już za sobą.

Krok 1. Dodaj do swojej aplikacji Monitorowanie wydajności

Gdy dodasz pakiet SDK Performance Monitoring, Firebase automatycznie rozpocznie zbieranie danych dotyczących renderowania ekranu Twojej aplikacji, danych związanych z jej cyklem życia (np. czasu uruchamiania aplikacji) oraz danych o żądaniach sieciowych HTTP/S.

Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.

  1. Po otwarciu projektu aplikacji przejdź w Xcode do File > Add Packages (Plik > Dodaj pakiety).
  2. Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę monitorowania wydajności.
  5. Dodaj flagę -ObjC do sekcji Inne flagi łączące w ustawieniach kompilacji celu.
  6. Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł FirebaseCore do obiektu UIApplicationDelegate, a także wszystkie inne moduły Firebase używane przez przedstawiciela aplikacji. Aby na przykład użyć Cloud Firestore i Uwierzytelniania:

    Certyfikat 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 współdzieloną instancję FirebaseApp w metodzie application(_:didFinishLaunchingWithOptions:) przedstawiciela aplikacji:

    Certyfikat 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ć przedstawiciela aplikacji i dołączyć go do struktury App za pomocą UIApplicationDelegateAdaptor lub NSApplicationDelegateAdaptor. Musisz też wyłączyć przełączanie przekazywania dostępu do aplikacji. Więcej informacji znajdziesz w instrukcjach SwiftUI.

    Certyfikat 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. Wygeneruj zdarzenia dotyczące skuteczności na potrzeby początkowego wyświetlania danych

Firebase rozpocznie przetwarzanie zdarzeń, gdy dodasz pakiet SDK do aplikacji. Jeśli nadal tworzysz aplikację lokalnie, użyj jej, aby wygenerować zdarzenia do wstępnego zbierania i przetwarzania danych.

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

  2. Aby generować zdarzenia, kilka razy przełączaj aplikację między tłem a pierwszym planem, wchodzij w interakcję z aplikacją za pomocą przechodzenia między ekranami lub uruchamiaj żądania sieciowe.

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

    Jeśli nie widzisz swoich danych początkowych, przeczytaj wskazówki dotyczące rozwiązywania problemów.

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

  1. Włącz logowanie debugowania w następujący sposób:

    1. W Xcode (minimalna wersja 14.1) wybierz Product > Schemat > Edytuj schemat.
    2. W menu po lewej stronie kliknij Uruchom i wybierz kartę Argumenty.
    3. W sekcji Arguments Passed at Launch (Argumenty przekazane przy uruchomieniu) dodaj parametr -FIRDebugEnabled.
  2. Sprawdź, czy w komunikatach logu nie ma żadnych komunikatów o błędach.

  3. Monitorowanie wydajności dodaje do komunikatów logu tag Firebase/Performance, dzięki czemu możesz je filtrować.

  4. Sprawdź następujące typy logów, które wskazują, że Monitorowanie wydajności rejestruje zdarzenia dotyczące 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 chwilę potrwać.

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

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

Aby monitorować dane o wydajności powiązane z określonym kodem w aplikacji, możesz skorzystać z niestandardowych logów czasu.

Niestandardowy ślad kodu pozwala sprawdzić, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, takich jak wczytanie zestawu obrazów czy wysłanie zapytania do bazy danych. Domyślnym wskaźnikiem niestandardowego śledzenia kodu jest jego czas trwania, ale możesz też dodać wskaźniki niestandardowe, takie jak trafienia w pamięci podręcznej i ostrzeżenia dotyczące pamięci.

W swoim kodzie definiujesz początek i koniec niestandardowego logu czasu (oraz dodajesz dowolne odpowiednie dane niestandardowe) za pomocą interfejsu API dostępnego w pakiecie SDK Performance Monitoring.

Więcej informacji o tych funkcjach i dodawaniu ich do aplikacji znajdziesz w artykule Dodawanie monitorowania na potrzeby określonego kodu.

Krok 5. Wdróż aplikację i sprawdź jej wyniki

Po sprawdzeniu monitorowania wydajności za pomocą symulatora Xcode i co najmniej jednego urządzenia testowego możesz wdrożyć zaktualizowaną wersję aplikacji na urządzeniach użytkowników.

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

Znane problemy

  • W Monitorze wydajności występują znane problemy ze zgodnością z GTMSQLite. Nie zalecamy używania Monitorowania wydajności w aplikacjach, które korzystają z GTMSQLite.
  • Ciągłe przesuwanie metod po wywołaniu metody FirebaseApp.configure() może zakłócać działanie pakietu SDK Performance Monitoring.
  • Znane problemy z symulatorem iOS 8.0–8.2 uniemożliwiają usłudze Monitorowanie wydajności rejestrowanie zdarzeń dotyczących wydajności. Te problemy rozwiązuje symulator iOS 8.3 i nowsze wersje.
  • Połączenia nawiązane z użyciem parametru backgroundSessionConfiguration NSURLSession w sesji działają dłużej niż oczekiwano. Połączenia te są wykonywane poza procesem, a czasy odzwierciedlają zdarzenia wywołania zwrotnego procesu.

Dalsze kroki