Guia de Instalação
Instale e configure o Certta para Flutter. Aprenda sobre os requisitos do SDK, seleção de módulo, permissões, configuração de sessão, atualizações de token em tempo de execução e temas de cores.
Este guia aborda caf_sdk 2.4.0 e superiores (Certta DevX). Para a versão anterior CafSdk fluxo sequencial, consulte a documentação legada.
Instalando o SDK para Flutter
Este guia orienta você pela configuração necessária para baixar, configurar e inicializar Certta (caf_sdk 2.4.0+) em um app Flutter.
Confira o app de exemplo para um exemplo de implementação completo.
Requisitos
Flutter
3.3.0+
Dart
3.9.0+
Android minSdk
26
Android compileSdk
36+
Kotlin
1.8+
Gradle
8.0+
Android Gradle Plugin (AGP)
8.0+
alvo de implantação do iOS
15.0+
Xcode
14.0+
Swift
5.0+
Etapa 1: Instale o SDK
flutter pub add caf_sdkA versão do pacote publicada é 2.4.0. Importe a API Certta DevX com:
Etapa 2: Configure a seleção de módulos
Crie um caf-modules-config.json arquivo na raiz do seu projeto (ao lado de pubspec.yaml) para escolher quais módulos nativos empacotar:
Defina como true os módulos que você deseja usar.
Para um único provedor, livenessProviders pode ser uma string. Os valores permitidos são iproov-lite, iproov-full, payface, e facetec. Para usar vários provedores, use um array:
iProov e Protobuf
iproov-lite: use quando seu app tiver como alvo Protobuf JavaLite — a escolha usual para um binário Android menor.iproov-full: use quando você precisar de Protobuf Java (completo) junto com iProov.
Se você incluir o PayFace provedor, você também deve usar iProov Lite (iproov-lite). O PayFace é compilado com Protobuf JavaLite; misturá-lo com iproov-full causa conflitos de dependência do Protobuf na hora da compilação.
Fingerprint
O módulo Fingerprint é opcional (fingerprint, booleano). O padrão é false. Para ativá-lo, defina "fingerprint": true.
Fingerprint é coletado como parte do fluxo de liveness, então ele só é empacotado quando faceLiveness ou faceLivenessUI também está ativado. Definir "fingerprint": true sem um módulo de liveness não tem efeito.
Entre em contato com o Suporte CAF para solicitar a ativação no backend. Se isso não estiver habilitado do nosso lado, o SDK não acionará a biblioteca de fingerprint mesmo que a propriedade esteja true localmente.
Etapa 3: configuração do Android
Configure o bloco repositories no arquivo android/build.gradle.kts (geralmente na raiz):
Etapa 4: configuração do iOS
Navegue até o diretório ios/ do seu projeto Flutter e execute:
Esta etapa é obrigatória para que o iOS possa vincular os módulos nativos.
Execute novamente
pod installsempre que dependências nativas forem adicionadas ou atualizadas.
Permissões
Android
Declare o seguinte em AndroidManifest.xml:
Face Liveness
android.permission.CAMERA
Acesso à câmera para verificação facial (liveness).
Obrigatória
android.permission.INTERNET
Comunicação com serviços de autenticação e verificação (HTTPS/WSS).
Obrigatória
Document Detector
android.permission.CAMERA
Acesso à câmera para capturar imagens de documentos.
Apenas para captura
android.permission.INTERNET
Enviar imagens capturadas para processamento e validação.
Obrigatória
android.permission.READ_EXTERNAL_STORAGE
Acessar arquivos armazenados quando o envio de documentos estiver ativado.
Apenas para upload
iOS
Declare o seguinte em Info.plist:
Face Liveness
NSCameraUsageDescription
Acesso à câmera para verificação facial (liveness).
Obrigatória
Acesso à rede
Comunicação com serviços de autenticação e verificação (HTTPS/WSS).
Obrigatória
Document Detector
NSCameraUsageDescription
Acesso à câmera para capturar imagens de documentos.
Apenas para captura
Acesso à rede
Enviar imagens capturadas para processamento e validação.
Obrigatória
NSPhotoLibraryUsageDescription
Acessar arquivos armazenados quando o envio de documentos estiver ativado.
Apenas para upload
Configurando a sessão
Para gerar seu token móvel, siga este guia:
Inicialize o Certta assim que tiver um token móvel válido (JWT) e o ID do usuário — normalmente após o login:
Você pode confirmar a sessão com await certta.isInitialized().
CerttaConfiguration parâmetros
mobileToken
String
JWT móvel da CAF do seu backend.
userId
String
Identificador do usuário final.
environment
CafEnvironment
Ambiente de backend: prod, beta, ou dev.
securityEnabled
bool
Ativa verificações de segurança. Padrão true.
Atualizações de configuração em tempo de execução
userId e mobileToken podem ser atualizados após a configuração inicial configureSdk sem repetir a configuração completa. Chame estes após login, logout ou atualização do token:
Use esses métodos sempre que seu app fizer logout/login ou quando seu backend emitir um JWT atualizado, para que o Certta permaneça sincronizado com a sessão ativa.
Logs
Os logs do pipeline do SDK são emitidos em CerttaSdk.logStream:
Tematização de cores
Face Liveness e Document Detector oferecem suporte a cores personalizadas para que a interface do SDK possa combinar com a sua marca. Passe strings hexadecimais (por exemplo "#RRGGBB") em CafColorConfiguration ao chamar configureSdk.
primaryColor
Cor principal para botões e destaques.
secondaryColor
Cor secundária para elementos complementares.
backgroundColor
Cor de fundo da tela.
contentColor
Cor usada para textos e ícones.
mediumColor
Cor neutra para elementos como barras de progresso.
dialogBackgroundColor
Cor de fundo de diálogos e pop-ups.
dialogBorderColor
Cor da borda de diálogos e pop-ups.
Idioma
Android
O idioma segue a localidade do dispositivo sem configuração adicional.
iOS
Configure Localizações e CFBundleLocalizations no Xcode:
Depois dessas configurações, o SDK usa o idioma do dispositivo.
Ofuscação de código
Adicione as seguintes regras do ProGuard/R8 ao android/app/proguard-rules.pro para que o SDK e suas dependências continuem funcionando após a ofuscação.
Próximos passos
Face LivenessDocument DetectorAtualizado

