Wprowadzenie do Monitorowania wydajności na platformach Apple

Zanim zaczniesz

Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu Apple.

Krok 1. Dodaj do swojej aplikacji Monitorowanie wydajności

Gdy dodasz pakiet SDK Performance Monitoring, Firebase automatycznie rozpocznie zbieranie danych renderowania ekranu aplikacji, z cyklem życia aplikacji (np. czas uruchomienia aplikacji) oraz dla żądań sieciowych HTTP/S.

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

  1. W Xcode po otwarciu projektu aplikacji przejdź do File > 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 lub zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł FirebaseCore do UIApplicationDelegate, jak i wszelkie 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 FirebaseApp współdzielonej instancji w uprawnieniach przedstawiciela aplikacji Metoda application(_:didFinishLaunchingWithOptions:):

    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ć i dołączyć przedstawiciela aplikacji. do struktury App za pomocą UIApplicationDelegateAdaptor lub NSApplicationDelegateAdaptor Musisz też wyłączyć przełączanie przekazywania dostępu do aplikacji. Dla: 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 . Jeśli nadal tworzysz aplikację lokalnie, użyj jej, aby wygenerować zdarzenia do początkowego zbierania i przetwarzania danych.

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

  2. Generowanie zdarzeń przez przełączanie aplikacji między tłem a pierwszym planem wielokrotnie i korzystając z aplikacji, przechodząc na różne ekrany, lub uruchamiać żądania sieciowe.

  3. Otwórz panel Skuteczność. w konsoli Firebase. Początkowe dane powinny się wyświetlić w ciągu za kilka minut.

    Jeśli nie widzisz swoich danych początkowych, zapoznaj się z sekcją dotyczącą 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 może filtrować komunikaty dziennika.

  4. Sprawdź następujące typy logów, które wskazują, że Monitorowanie wydajności jest rejestrowanie zdarzeń 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. Może to chwilę potrwać momentu aktualizacji danych na pulpicie nawigacyjnym.

Jeśli aplikacja nie rejestruje zdarzeń związanych z wydajnością, zapoznaj się z informacjami na temat 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: instrumentów niestandardowych logów czasu.

Dzięki niestandardowemu śledzeniu kodu możesz sprawdzić, ile czasu zajmuje uruchomienie aplikacji określonego zadania lub zestawu zadań, np. wczytanie zestawu obrazów lub wysłanie zapytań; w bazie danych. Domyślnym wskaźnikiem niestandardowego śledzenia kodu jest jego czas trwania, ale możesz też dodawać wskaźniki niestandardowe, takie jak trafienia w pamięci podręcznej i ostrzeżenia związane z pamięcią.

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

Zapoznaj się z artykułem Dodawanie monitorowania dla określonego kodu. , by dowiedzieć się więcej o tych funkcjach i sposobach ich dodawania do aplikacji.

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

Po sprawdzeniu poprawności monitorowania skuteczności za pomocą symulatora Xcode i co najmniej jednego urządzeń testowych, możesz wdrożyć zaktualizowaną wersję aplikacji u użytkowników.

Dane o skuteczności możesz sprawdzać w Panel Skuteczność w konsoli Firebase.

Znane problemy

  • W Monitorze wydajności występują znane problemy ze zgodnością z GTMSQLite. Nie zalecamy monitorowania wydajności w aplikacjach, które korzystają z GTMSQLite.
  • Wskaźnik przesuwania metod po wywołaniu usługi FirebaseApp.configure() może zakłócać działanie usługi SDK do monitorowania wydajności.
  • Znane problemy z symulatorem iOS 8.0–8.2 uniemożliwiają Monitorowanie wydajności rejestrowania zdarzeń dotyczących skuteczności. Te problemy są rozwiązywane w symulatorze iOS 8.3 i nowszych wersjach.
  • Nawiązano połączenia przy użyciu instancji backgroundSessionConfiguration NSURLSession czas połączenia będzie dłuższy niż zakładany. Te połączenia są są wykonywane poza procesem, a czasy odzwierciedlają zdarzenia wywołania zwrotnego procesu.

Dalsze kroki