Usar o App Check com o provedor de depuração em plataformas da Apple

Se você quiser executar seu aplicativo depois do registro em um ambiente que o App Check normalmente não classificaria como válido, como um simulador ou dispositivo durante o desenvolvimento ou de uma integração contínua (CI), é possível criar um build de depuração que use o provedor de depuração do App Check em vez de um provedor de atestado real.

Usar o provedor de depuração no desenvolvimento

Para usar o provedor de depuração ao executar seu app de forma interativa (por exemplo, durante o desenvolvimento) faça o seguinte:

  1. No build de depuração, antes de usar qualquer serviço de back-end do Firebase, crie e defina a fábrica do provedor de depuração do App Check:

    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. Ative a geração de registros de depuração no seu projeto do Xcode (v11.0 ou mais recente):

    1. Abra Produto > Esquema > Editar esquema.
    2. Selecione Executar no menu à esquerda e depois a guia Argumentos.
    3. Na seção Arguments Passed On Launch, adicione -FIRDebugEnabled.
  3. Inicie o app. Um token local de depuração será registrado quando o SDK tentar enviar uma solicitação ao back-end. Exemplo:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Na seção App Check no Console do Firebase, selecione Gerenciar tokens de depuração no menu flutuante do app. Em seguida, registre o token de depuração que você registrou na etapa anterior.

    Captura de tela do item de menu "Gerenciar tokens de depuração"

Depois que você registrar o token, os serviços de back-end do Firebase o aceitarão como válido.

Como esse token permite acesso aos recursos do Firebase sem um dispositivo válido, é fundamental mantê-lo particular. Não o confirme em um repositório público. Se um token registrado for comprometido, revogue-o imediatamente no Console do Firebase.

Usar o provedor de depuração em um ambiente de CI

Para usar o provedor de depuração em um ambiente de integração contínua (CI, na sigla em inglês), faça o seguinte:

  1. Na seção App Check no Console do Firebase, escolha Gerenciar tokens de depuração no menu flutuante do app. Em seguida, crie um novo token de depuração. Você precisará do token na próxima etapa.

    Como esse token permite acesso aos recursos do Firebase sem um dispositivo válido, é fundamental mantê-lo particular. Não o confirme em um repositório público. Se um token registrado for comprometido, revogue-o imediatamente no Console do Firebase.

    Captura de tela do item de menu "Gerenciar tokens de depuração"

  2. Adicione o token de depuração que você acabou de criar ao armazenamento de chaves seguras do seu sistema de CI (por exemplo, secrets criptografados do GitHub Actions ou variáveis criptografadas do Travis CI).

  3. Se necessário, configure o sistema de CI para disponibilizar o token de depuração no ambiente de CI como uma variável de ambiente. Dê um nome à variável como APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. No Xcode, adicione uma variável de ambiente ao esquema de teste com o nome FIRAAppCheckDebugToken e algo como $(APP_CHECK_DEBUG_TOKEN) como o valor.

  5. Configure o script de teste de CI para transmitir o token de depuração como uma variável de ambiente. Exemplo:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. No build de depuração, antes de usar qualquer serviço de back-end do Firebase, crie e defina a fábrica do provedor de depuração do App Check:

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

Quando seu app é executado em um ambiente de CI, os serviços de back-end do Firebase aceitam o token enviado como válido.