App Check mit dem Debugging-Anbieter auf Apple-Plattformen verwenden

Nachdem App Check für einen Backend-Dienst erzwungen wurde, werden die Funktionen Ihrer App, die von diesem Backend-Dienst abhängen, nicht in einem Simulator oder in einer CI-Umgebung (Continuous Integration) ausgeführt, da diese Umgebungen nicht als gültige Geräte gelten. Wenn Sie Ihre App während der Entwicklung und des Tests in diesen Umgebungen ausführen möchten, müssen Sie einen Debug-Build Ihrer App erstellen, der den App Check-Debug-Anbieter anstelle eines Produktionsattestierungsanbieters verwendet.

Debug-Anbieter in einem Simulator verwenden

So verwenden Sie den Debug-Anbieter, wenn Sie Ihre App interaktiv in einem Simulator ausführen (z. B. während der lokalen Entwicklung):

  1. Erstellen Sie in Ihrem Debug-Build, bevor Sie Firebase-Backend-Dienste verwenden, die Debug-Anbieter-Factory App Check und legen Sie sie fest:

    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. Rufen Sie Ihr Debug-Token ab:

    1. Starten Sie die App im Simulator oder auf dem Testgerät.

    2. Öffnen Sie die Xcode-Konsole und suchen Sie nach dem App Check-Debug-Token. Beispiel:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Kopieren Sie das Token (z. B. 123a4567-b89c-12d3-e456-789012345678).

  3. Registrieren Sie Ihr Debug-Token bei App Check:

    1. Rufen Sie in der Firebase-Konsole den Tab Sicherheit > App Check > Apps auf.

    2. Suchen Sie Ihre App, klicken Sie auf das Dreipunkt-Menü () und wählen Sie dann Debug-Tokens verwalten aus.

    3. Folgen Sie der Anleitung auf dem Bildschirm, um Ihr Debug-Token zu registrieren.

    Screenshot des Menüpunkts „Debug-Tokens verwalten“ in der Firebase Console

Nachdem Sie das Token bei App Check registriert haben, wird es von Ihren Backend-Diensten als gültig akzeptiert.

Dieses Token ermöglicht den Zugriff auf Ihre Backend-Dienste ohne ein gültiges Gerät. Daher ist es wichtig, dass Sie es geheim halten. Übertragen Sie es nicht in ein öffentliches Repository und verwenden Sie es nicht in Produktions-Builds Ihrer App. Wenn ein registriertes Token kompromittiert wird, löschen Sie es sofort über Debugging-Tokens verwalten in der Firebase-Konsole.

Debug-Anbieter in einer CI-Umgebung verwenden

So verwenden Sie den Debug-Anbieter für Unittests in einer CI-Umgebung (Continuous Integration):

  1. Erstellen Sie in der Firebase Console ein Debug-Token:

    1. Rufen Sie in der Firebase-Konsole den Tab Sicherheit > App Check > Apps auf.

    2. Suchen Sie Ihre App, klicken Sie auf das Dreipunkt-Menü () und wählen Sie dann Debug-Tokens verwalten aus.

    3. Folgen Sie der Anleitung auf dem Bildschirm, um ein neues Debug-Token zu erstellen.

    Dieses Token ermöglicht den Zugriff auf Ihre Backend-Dienste ohne ein gültiges Gerät. Daher ist es wichtig, dass Sie es geheim halten. Übertragen Sie es nicht in ein öffentliches Repository und verwenden Sie es nicht in Produktions-Builds Ihrer App. Wenn ein registriertes Token kompromittiert wird, löschen Sie es sofort über Debugging-Tokens verwalten in der Firebase-Konsole.

    Screenshot des Menüpunkts „Debug-Tokens verwalten“

  2. Fügen Sie das soeben erstellte Debug-Token dem sicheren Schlüsselspeicher Ihres CI-Systems hinzu (z. B. verschlüsselte Secrets von GitHub Actions oder verschlüsselte Variablen von Travis CI).

  3. Konfigurieren Sie gegebenenfalls Ihr CI-System so, dass Ihr Debug-Token in der CI-Umgebung als Umgebungsvariable verfügbar ist. Geben Sie der Variablen einen Namen wie APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. Fügen Sie in Xcode Ihrem Testschema eine Umgebungsvariable mit dem Namen AppCheckDebugToken und einem Wert wie $(APP_CHECK_DEBUG_TOKEN) hinzu.

  5. Konfigurieren Sie Ihr CI-Testskript so, dass das Debug-Token als Umgebungsvariable übergeben wird. Beispiel:

    xcodebuild test -scheme YOUR_TEST_SCHEME -workspace YOUR_PROJECT.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Erstellen Sie in Ihrem Debug-Build vor der Verwendung von Firebase-Backend-Diensten die Debug-Anbieter-Factory App Check und legen Sie sie fest:

    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];

Wenn Ihre App in einer CI-Umgebung ausgeführt wird, akzeptieren Ihre Backend-Dienste das von ihr gesendete Token als gültig.