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

Se, depois de registrar seu aplicativo no App Check, você quiser executá-lo em um ambiente que o App Check normalmente não classificaria como válido, como um simulador durante o desenvolvimento ou em um ambiente de integração contínua (CI), você poderá crie uma compilação de depuração do seu aplicativo que use o provedor de depuração do App Check em vez de um provedor de atestado real.

Use o provedor de depuração em um simulador

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

  1. Na sua compilação 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:

    Rápido

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objetivo-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Habilite o registro de depuração em seu projeto Xcode (v11.0 ou mais recente):

    1. Abra Produto > Esquema > Editar esquema .
    2. Selecione Executar no menu esquerdo e selecione a guia Argumentos .
    3. Na seção Argumentos passados ​​na inicialização , adicione -FIRDebugEnabled .
  3. Inicie o aplicativo. Um token de depuração local será registrado quando o SDK tentar enviar uma solicitação ao back-end. Por exemplo:

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

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

Depois de 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, é crucial mantê-lo privado. Não o envie para um repositório público e, se um token registrado for comprometido, revogue-o imediatamente no console do Firebase.

Use 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), faça o seguinte:

  1. Na seção App Check do console do Firebase, escolha Gerenciar tokens de depuração no menu flutuante do seu aplicativo. 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, é crucial mantê-lo privado. Não o envie para um repositório público e, 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 seguro do seu sistema de CI (por exemplo, segredos criptografados do GitHub Actions ou variáveis ​​criptografadas do Travis CI).

  3. Se necessário, configure seu sistema de CI para disponibilizar seu token de depuração no ambiente de CI como uma variável de ambiente. Nomeie a variável como APP_CHECK_DEBUG_TOKEN_FROM_CI .

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

  5. Configure seu script de teste de CI para passar o token de depuração como uma variável de ambiente. Por exemplo:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Na sua compilação 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:

    Rápido

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objetivo-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

Quando seu aplicativo for executado em um ambiente de CI, os serviços de back-end do Firebase aceitarão o token enviado como válido.