Usa la Verificación de aplicaciones mediante el proveedor de depuración

Si, después de registrar la app en la Verificación de aplicaciones, deseas ejecutarla en un entorno que la Verificación de aplicaciones normalmente no clasificaría como válido, como un simulador durante el desarrollo o un entorno de integración continua (CI), puedes crear una compilación de depuración de la app que use el proveedor de depuración de la Verificación de aplicaciones en lugar de App Attest.

Usa el proveedor de depuración en un simulador

Para usar el proveedor de depuración mientras ejecutas la app en un simulador de manera interactiva (por ejemplo, durante el desarrollo), haz lo siguiente:

  1. Busca la clave de API de iOS para tu proyecto en la página Credenciales de la sección APIs y servicios de la consola de Google Cloud.

  2. En la compilación de depuración, configura la Verificación de aplicaciones para que use el proveedor de depuración. Deberás especificar la clave de API que obtuviste en el paso anterior.

    #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. Inicia la app. Se registrará un token de depuración local en la consola de Xcode cuando el SDK intente enviar una solicitud al backend. Por ejemplo:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. En la sección Verificación de aplicaciones de Firebase console, selecciona Administrar tokens de depuración (Manage debug tokens) en el menú ampliado de la app. Luego, registra el token de depuración que registraste en el paso anterior.

    Captura de pantalla del elemento del menú Administrar tokens de depuración (Manage debug tokens)

Después de registrar el token, los extremos de OAuth 2.0 de Google lo aceptarán como válido para tu proyecto.

Debido a que este token permite el acceso a tus extremos de autenticación sin un dispositivo válido, es fundamental que sea privado. No lo confirmes en un repositorio público y, si un token registrado se ve comprometido, revócalo de inmediato en Firebase console.

Usa el proveedor de depuración en un entorno de CI

Para usar el proveedor de depuración en un entorno de integración continua (CI), haz lo siguiente:

  1. En la sección Verificación de aplicaciones de Firebase console, selecciona Administrar tokens de depuración (Manage debug tokens) en el menú ampliado de la app. Luego, crea un token de depuración nuevo. Necesitarás el token en el siguiente paso.

    Debido a que este token permite el acceso a tus extremos de autenticación sin un dispositivo válido, es fundamental que sea privado. No lo confirmes en un repositorio público y, si un token registrado se ve comprometido, revócalo de inmediato en Firebase console.

    Captura de pantalla del elemento del menú Administrar tokens de depuración (Manage debug tokens)

  2. Agrega el token de depuración que acabas de crear al almacén de claves seguro del sistema de CI (por ejemplo, los secretos encriptados de GitHub Actions o las variables encriptadas de Travis CI).

  3. Si es necesario, configura el sistema de CI para que el token de depuración esté disponible dentro del entorno de CI como una variable de entorno. Asigna un nombre a la variable, como APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. En Xcode, agrega una variable de entorno a tu esquema de pruebas con el nombre FIRAAppCheckDebugToken y algo como $(APP_CHECK_DEBUG_TOKEN) como valor.

  5. Configura la secuencia de comandos de prueba de CI para pasar el token de depuración como una variable de entorno. Por ejemplo:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Busca la clave de API de iOS para tu proyecto en la página Credenciales de la sección APIs y servicios de la consola de Google Cloud.

  7. En la compilación de depuración, configura la Verificación de aplicaciones para que use el proveedor de depuración. Deberás especificar la clave de API que obtuviste en el paso anterior.

    #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
    

Cuando la app se ejecute en un entorno de CI, los extremos de OAuth 2.0 de Google aceptarán el token que envía como válido para el proyecto.