Utilizzare App Check con il fornitore di debug

Se, dopo aver registrato la tua app per App Check, vuoi eseguirla in un ambiente che normalmente non classificherebbe come valido, ad esempio un simulatore durante lo sviluppo o da un ambiente di integrazione continua (CI), puoi creare una build di debug della tua app che utilizza il provider di debug di App Check anziché App Attest.

Utilizzare il fornitore di debug in un simulatore

Per utilizzare il provider di debug durante l'esecuzione dell'app in un simulatore in modo interattivo (ad esempio durante lo sviluppo):

  1. Cerca la chiave API per iOS per il tuo progetto nella pagina Credenziali della sezione API e servizi della console Google Cloud.

  2. Nella build di debug, configura App Check in modo che utilizzi il provider di debug. Dovrai specificare la chiave API che hai ottenuto nel passaggio precedente.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    
  3. Avvia l'app. Un token di debug locale verrà registrato nella console Xcode quando l'SDK tenta di inviare una richiesta al backend. Ad esempio:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. Nella sezione App Check della console Firebase, scegli Gestisci i token di debug dal menu extra dell'app. Quindi, registra il token di debug che hai registrato nel passaggio precedente.

    Screenshot della voce di menu Gestisci token di debug

Dopo la registrazione del token, gli endpoint OAuth 2.0 di Google lo accetteranno come validi per il tuo progetto.

Poiché questo token consente di accedere agli endpoint di autenticazione senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguire il commit del token in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella console Firebase.

Utilizzo del provider di debug in un ambiente CI

Per utilizzare il provider di debug in un ambiente di integrazione continua (CI), procedi nel seguente modo:

  1. Nella sezione App Check della console Firebase, scegli Gestisci i token di debug dal menu extra dell'app. Poi, crea un nuovo token di debug. Ti servirà nel passaggio successivo.

    Poiché questo token consente di accedere agli endpoint di autenticazione senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguire il commit del token in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella console Firebase.

    Screenshot della voce di menu Gestisci token di debug

  2. Aggiungi il token di debug appena creato all'archivio chiavi sicuro del sistema CI (ad esempio, i secret criptati di GitHub Actions o le variabili crittografate di Travis CI).

  3. Se necessario, configura il sistema CI per rendere disponibile il token di debug nell'ambiente CI come variabile di ambiente. Assegna alla variabile un nome simile a APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. In Xcode, aggiungi una variabile di ambiente allo schema di test con il nome FIRAAppCheckDebugToken e $(APP_CHECK_DEBUG_TOKEN) come valore.

  5. Configura lo script per il test CI in modo che passi il token di debug come variabile di ambiente. Ad esempio:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Cerca la chiave API per iOS per il tuo progetto nella pagina Credenziali della sezione API e servizi della console Google Cloud.

  7. Nella build di debug, configura App Check in modo che utilizzi il provider di debug. Dovrai specificare la chiave API che hai ottenuto nel passaggio precedente.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    

Quando l'app viene eseguita in un ambiente CI, gli endpoint OAuth 2.0 di Google accettano il token che invia come valido per il tuo progetto.