Utilizzare App Check con il fornitore di debug

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

Utilizzare il provider di debug in un simulatore

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

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

  2. Nella build di debug, configura App Check in modo da utilizzare il provider di debug. Dovrai devi specificare la chiave API che hai ricevuto 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 viene 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 token di debug dal menu extra. Quindi, registra il token di debug che hai registrato nell'esperienza precedente passaggio.

    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 l'accesso agli endpoint di autenticazione senza un dispositivo valido, è fondamentale mantenerlo privato. Non impegnarti in un repository pubblico e, se un token registrato viene compromesso, revocalo nella console Firebase.

Utilizza il provider di debug in un ambiente CI

Per utilizzare il provider di debug in un ambiente di integrazione continua (CI), esegui la seguenti:

  1. Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu extra. Quindi, crea un nuovo token di debug. Ti servirà il token al passaggio successivo.

    Poiché questo token consente l'accesso agli endpoint di autenticazione senza un dispositivo valido, è fondamentale mantenerlo privato. Non impegnarti in un repository pubblico e, se un token registrato viene compromesso, revocalo 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 delle Azioni GitHub o le variabili criptate 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 un nome alla variabile ad esempio APP_CHECK_DEBUG_TOKEN_FROM_CI.

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

  5. Configura lo script per il test CI per passare il token di debug come 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 iOS per il tuo progetto nella pagina Credenziali pagina della sezione API e Servizi della console Google Cloud.

  7. Nella build di debug, configura App Check in modo da utilizzare il provider di debug. Dovrai devi specificare la chiave API che hai ricevuto 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.