Korzystanie ze Sprawdzania aplikacji przy pomocy dostawcy debugowania na platformach Apple

Jeśli po zarejestrowaniu aplikacji na potrzeby Sprawdzania aplikacji chcesz uruchamiać ją w środowisku, które zwykle nie zostałoby sklasyfikowane jako prawidłowe, np. w symulatorze lub na urządzeniu w trakcie programowania, albo w środowisku ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która korzysta z dostawcy debugowania Sprawdzania aplikacji zamiast prawdziwego dostawcy atestu.

Używanie dostawcy debugowania w trakcie opracowywania

Aby użyć dostawcy debugowania podczas interaktywnego uruchamiania aplikacji (np. w trakcie programowania), wykonaj te czynności:

  1. Zanim użyjesz usług backendu Firebase w kompilacji do debugowania, utwórz i ustaw fabrykę dostawcy debugowania Sprawdzania aplikacji:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Włącz logowanie debugowania w projekcie Xcode (wersja 11.0 lub nowsza):

    1. Kliknij Produkt > 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.
  3. Uruchom aplikację. Gdy pakiet SDK spróbuje wysłać żądanie do backendu, zostanie zarejestrowany lokalny token debugowania. Przykład:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz z rozszerzonego menu aplikacji Zarządzaj tokenami debugowania. Następnie zarejestruj token debugowania zapisany w poprzednim kroku.

    Zrzut ekranu przedstawiający pozycję menu Zarządzaj tokenami debugowania

Gdy zarejestrujesz token, usługi backendu Firebase uznają go za prawidłowy.

Token ten umożliwia dostęp do zasobów Firebase bez prawidłowego urządzenia, dlatego należy zadbać o ich prywatność. Nie podawaj go w publicznym repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek przejęty, możesz go natychmiast unieważnić w konsoli Firebase.

Używanie dostawcy debugowania w środowisku CI

Aby użyć dostawcy debugowania w środowisku ciągłej integracji (CI), wykonaj te czynności:

  1. W sekcji Sprawdzanie aplikacji w konsoli Firebase wybierz z rozszerzonego menu aplikacji Zarządzaj tokenami debugowania. Następnie utwórz nowy token debugowania. Token będzie potrzebny w następnym kroku.

    Umożliwia on dostęp do zasobów Firebase bez prawidłowego urządzenia, dlatego ważne jest, aby dbać o ich prywatność. Nie podawaj go w publicznym repozytorium, a jeśli zarejestrowany token zostanie kiedykolwiek przejęty, możesz go natychmiast unieważnić w konsoli Firebase.

    Zrzut ekranu przedstawiający pozycję menu Zarządzaj tokenami debugowania

  2. Dodaj utworzony przed chwilą token debugowania do bezpiecznego magazynu kluczy systemu CI (np. zaszyfrowane obiekty tajne w usłudze GitHub Actions lub zaszyfrowane zmienne Travis CI).

  3. W razie potrzeby skonfiguruj system CI tak, aby token debugowania był dostępny w środowisku CI jako zmienna środowiskowa. Nazwij zmienną np. APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. W Xcode dodaj do schematu testowania zmienną środowiskową o nazwie FIRAAppCheckDebugToken i na przykład $(APP_CHECK_DEBUG_TOKEN) jako wartości.

  5. Skonfiguruj skrypt testowy CI tak, aby przekazywał token debugowania jako zmienną środowiskową. Przykład:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Zanim użyjesz usług backendu Firebase w kompilacji do debugowania, utwórz i ustaw fabrykę dostawcy debugowania Sprawdzania aplikacji:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

Gdy aplikacja działa w środowisku CI, usługi backendu Firebase będą akceptować wysłany token jako prawidłowy.