LivenessFacetecSDK — o pacote que embute o motor FaceTec — ao seu projeto Android.
Pré-requisitos
Antes de começar, garanta que você tem:- Uma chave de API válida emitida pela Plataforma ID, usada pelo seu backend na criação da sessão — o app nunca a recebe.
- Acesso ao arquivo
.aardoLivenessFacetecSDKdistribuído pela Valid. - O Package Name (
applicationId) do seu app enviado à equipe da Valid para liberação na licença FaceTec. - Um projeto Android atendendo aos Requisitos mínimos abaixo.
Requisitos mínimos
O
compileSdk = 36 e o desugaring de bibliotecas do core são exigidos pelo aar-metadata do SDK (minCompileSdk=36). Configurar valores abaixo disso faz a build falhar na resolução da dependência.O AAR fundido já inclui o FaceTec SDK 10.1.18 e todas as chaves internas do SDK — nenhuma chave precisa ser fornecida pelo app consumidor. Bibliotecas de terceiros (Koin, Retrofit, OkHttp, Shield, etc.) precisam ser declaradas explicitamente pelo app cliente; a lista completa está abaixo.
Instalação
1
Obter o binário
Solicite à equipe da Valid o
.aar do LivenessFacetecSDK. Ele já contém o FaceTec SDK, todos os módulos internos do SDK e as bibliotecas nativas das duas ABIs suportadas.2
Adicionar o AAR ao app
Copie o AAR para a pasta
libs do módulo app:3
Configurar repositórios
No
settings.gradle.kts do projeto, declare os repositórios necessários para resolver as dependências externas do SDK:4
Configurar app/build.gradle.kts
Declare o AAR junto com as dependências externas obrigatórias:
kotlinx-serialization-json é necessária porque o código compilado do SDK referencia essas classes em runtime. O plugin do compilador (kotlin.serialization) não é necessário no app consumidor — a serialização já vem compilada dentro do AAR.5
Sincronizar e validar
Sincronize o Gradle (
File → Sync Project with Gradle Files no Android Studio). Após o sync, o classpath deve resolver com.vcc.vendor.facetec.sdk.LivenessFacetecSDK.ProGuard / R8
O AAR fundido já contém umproguard.txt combinado (SDK + FaceTec), aplicado automaticamente pelo AGP ao app cliente. Ele cobre as classes públicas do SDK, as classes do FaceTec, a ponte JNI e os metadados do Kotlin — nenhuma regra manual para esses itens é necessária.
As dependências abaixo empacotam suas próprias regras consumer e não requerem regras manuais:
Regras obrigatórias
Como o build typerelease liga isMinifyEnabled = true, adicione ao proguard-rules.pro do módulo app:
-dontoptimize não é necessário. Integrações antigas do SDK exigiam essa flag para contornar um VerifyError em classes internas do FaceTec sob R8 Full Mode; o problema foi corrigido no FaceTec 10.1.18. Se você carrega -dontoptimize de uma integração anterior, pode remover.Se o seu app usar Retrofit diretamente com interfaces anotadas, pode ser necessário preservar anotações em runtime:
NoClassDefFoundError em release com minificação ligada, valide se o proguard.txt do AAR foi efetivamente mesclado abrindo o mapping.txt gerado pelo R8.
Permissões
O AAR fundido injeta no manifesto do seu app, via manifest merger, todas as permissões e Activities necessárias —INTERNET, CAMERA, ACCESS_NETWORK_STATE, a Activity de captura do FaceTec e a Activity-ponte do SDK. Nenhuma declaração manual é necessária.
A FaceTec trata a solicitação de permissão de câmera e a respectiva tela inteiramente por conta própria — o SDK não contém lógica de permissão de câmera, e seu app não precisa pedir
CAMERA antes de iniciar a captura.Próximos passos
Implementação
Inicialize o SDK e colete o resultado da verificação
Solução de problemas
Erros comuns ao adicionar o AAR e configurar o Gradle