了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Zacznij korzystać z monitorowania wydajności na platformach Apple

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu Apple .

Krok 1 : Dodaj monitorowanie wydajności do swojej aplikacji

Po dodaniu pakietu SDK do monitorowania wydajności Firebase automatycznie zaczyna zbierać dane dotyczące renderowania ekranu Twojej aplikacji , dane związane z cyklem życia aplikacji (takie jak czas uruchomienia aplikacji ) oraz dane dotyczące żądań sieciowych HTTP/S .

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

  1. W Xcode przy otwartym projekcie aplikacji przejdź do File > Add Packages .
  2. Po wyświetleniu monitu dodaj repozytorium Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę monitorowania wydajności.
  5. Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł FirebaseCore do swojego UIApplicationDelegate , a także wszelkie inne moduły Firebase, z których korzysta delegat aplikacji. Na przykład, aby użyć Cloud Firestore i uwierzytelniania:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Szybki

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Cel C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Skonfiguruj udostępnioną instancję FirebaseApp w metodzie application application(_:didFinishLaunchingWithOptions:) delegata aplikacji:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Szybki

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Cel 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 pośrednictwem UIApplicationDelegateAdaptor lub NSApplicationDelegateAdaptor . Musisz także wyłączyć przełączanie delegatów aplikacji. Aby uzyskać więcej informacji, zobacz instrukcje 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 swoją aplikację.

Krok 2 : Wygeneruj zdarzenia dotyczące wydajności dla początkowego wyświetlenia danych

Firebase rozpocznie przetwarzanie zdarzeń, gdy pomyślnie dodasz pakiet SDK do swojej aplikacji. Jeśli nadal rozwijasz się lokalnie, korzystaj z aplikacji, aby generować zdarzenia do wstępnego gromadzenia i przetwarzania danych.

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

  2. Generuj zdarzenia, kilkakrotnie przełączając aplikację między tłem a pierwszym planem, wchodząc w interakcję z aplikacją, nawigując po ekranach i/lub uruchamiając żądania sieciowe.

  3. Przejdź do pulpitu wydajności konsoli Firebase. Początkowe dane powinny zostać wyświetlone w ciągu kilku minut.

    Jeśli nie widzisz danych początkowych, zapoznaj się ze 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 rejestrowanie debugowania w następujący sposób:

    1. W Xcode (minimum v14.1) wybierz Product > Scheme > Edit schema .
    2. Wybierz opcję Uruchom z menu po lewej stronie, a następnie wybierz kartę Argumenty .
    3. W sekcji argumenty przekazane podczas uruchamiania dodaj opcję -FIRDebugEnabled .
  2. Sprawdź komunikaty dziennika pod kątem komunikatów o błędach.

  3. Performance Monitoring oznacza swoje komunikaty dziennika za pomocą Firebase/Performance aby można było filtrować komunikaty dziennika.

  4. Sprawdź następujące typy dziennikó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. Zaktualizowanie danych w panelu może chwilę potrwać.

Jeśli Twoja aplikacja nie rejestruje zdarzeń związanych z 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 dotyczące wydajności powiązane z określonym kodem w Twojej aplikacji, możesz instrumentować niestandardowe ślady kodu .

Dzięki niestandardowemu śledzeniu kodu możesz zmierzyć, ile czasu zajmuje aplikacji ukończenie określonego zadania lub zestawu zadań, takich jak załadowanie zestawu obrazów lub wysłanie zapytania do bazy danych. Domyślną metryką dla niestandardowego śledzenia kodu jest jego czas trwania, ale można również dodać niestandardowe metryki, takie jak trafienia w pamięci podręcznej i ostrzeżenia dotyczące pamięci.

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia kodu (oraz dodajesz dowolne niestandardowe metryki) za pomocą interfejsu API udostępnianego przez zestaw SDK do monitorowania wydajności.

Odwiedź Dodaj monitorowanie dla określonego kodu, aby dowiedzieć się więcej o tych funkcjach i jak dodać je do swojej aplikacji.

Krok 5 : Wdróż aplikację, a następnie przejrzyj wyniki

Po zweryfikowaniu monitorowania wydajności przy użyciu symulatora Xcode i co najmniej jednego urządzenia testowego możesz wdrożyć zaktualizowaną wersję aplikacji dla użytkowników.

Możesz monitorować dane dotyczące wydajności w panelu wydajności konsoli Firebase.

Znane problemy

  • Monitorowanie wydajności ma znane problemy ze zgodnością z GTMSQLite. Zalecamy, aby nie używać monitorowania wydajności z aplikacjami korzystającymi z GTMSQLite.
  • Zmiana metody po wywołaniu FirebaseApp.configure() może zakłócać działanie zestawu SDK do monitorowania wydajności.
  • Znane problemy z symulatorem systemu iOS 8.0-8.2 uniemożliwiają monitorowaniu wydajności przechwytywanie zdarzeń związanych z wydajnością. Te problemy zostały rozwiązane w symulatorze systemu iOS 8.3 i nowszych wersjach.
  • Połączenia ustanowione przy użyciu backgroundSessionConfiguration NSURLSession będą wykazywać dłuższe niż oczekiwane czasy połączenia. Te połączenia są wykonywane poza procesem, a czasy odzwierciedlają zdarzenia wywołania zwrotnego w trakcie procesu.

Następne kroki