Usar o App Check com o provedor de depuração

Se, depois de registrar seu app no App Check, você quiser executar sua em um ambiente que o App Check normalmente não classificaria como válido, como um simulador durante o desenvolvimento ou de uma integração contínua (CI) é possível criar um build de depuração do seu app que usa o O provedor de depuração do App Check em vez do App Attest.

Usar o provedor de depuração em um simulador

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

  1. Procure a chave de API do iOS do seu projeto em Credenciais página de APIs e Serviços do console do Google Cloud.

  2. No build de depuração, configure o App Check para usar o provedor de depuração. Você vai especifique a chave de API que você recebeu na etapa 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. Inicie o app. Um token de depuração local será registrado no console do Xcode quando o SDK tenta enviar uma solicitação ao back-end. Exemplo:

    <Warning> [AppCheckCore][I-GAC004001] 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 na menu flutuante. Em seguida, registre o token de depuração que você registrou na etapa.

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

Depois de registrar o token, os endpoints OAuth 2.0 do Google o aceitarão como válidas para seu projeto.

Como esse token permite acesso aos seus endpoints de autenticação sem uma um dispositivo válido, é crucial que você o mantenha privado. Não se comprometa com um repositório público e, 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), faça o seguinte:

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

    Como esse token permite acesso aos seus endpoints de autenticação sem um dispositivo válido, é crucial que você o mantenha privado. Não se comprometa com 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 &quot;Gerenciar tokens de depuração&quot;

  2. Adicione o token de depuração que você acabou de criar ao repositório de chaves seguro do sistema de CI Por exemplo, os 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. Dê um nome à variável algo 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. Configurar o script de teste de CI para transmitir o token de depuração como um ambiente variável. Exemplo:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Procure a chave de API do iOS do seu projeto em Credenciais página de APIs e Serviços do console do Google Cloud.

  7. No build de depuração, configure o App Check para usar o provedor de depuração. Você vai especifique a chave de API que você recebeu na etapa 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
    

Quando seu app é executado em um ambiente de CI, os endpoints OAuth 2.0 do Google aceitam o token enviado como válido para o seu projeto.