Usa la Verificación de aplicaciones mediante el proveedor de depuración en plataformas de Apple

Si, después de registrar la app en la Verificación de aplicaciones, quieres ejecutarla en un entorno que la Verificación de aplicaciones no suele clasificar como válido, como un simulador durante el desarrollo, o desde 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 un proveedor de certificación real.

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), sigue estos pasos:

  1. En la compilación de depuración, antes de usar cualquier servicio de backend de Firebase, crea y configura la fábrica del proveedor de depuración de la Verificación de aplicaciones:

    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. Habilita el acceso a la depuración en el proyecto de Xcode (v11.0 o una versión posterior):

    1. Abre Producto > Esquema > Edit scheme.
    2. Selecciona Run en el menú de la izquierda y, luego, selecciona la pestaña Arguments.
    3. En la sección Arguments Passed On Launch, agrega -FIRDebugEnabled.
  3. Inicia la app. Se registrará un token de depuración local cuando el SDK intente enviar una solicitud al backend. Por ejemplo:

    [Firebase/AppCheck][I-FAA001001] Firebase 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 ingresaste 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 servicios de backend de Firebase lo aceptarán como válido.

Debido a que este token permite el acceso a tus recursos de Firebase 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. Lo necesitarás en el siguiente paso.

    Debido a que este token permite el acceso a tus recursos de Firebase 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 a fin de 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 prueba con el nombre FIRAAppCheckDebugToken y un valor similar a $(APP_CHECK_DEBUG_TOKEN).

  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. En la compilación de depuración, antes de usar cualquier servicio de backend de Firebase, crea y configura la fábrica del proveedor de depuración de la Verificación de aplicaciones:

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

Cuando la app se ejecute en un entorno de CI, los servicios de backend de Firebase aceptarán el token que envía como válido.