LivenessFacetecSDK — o pacote que orquestra 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 aos arquivos
.aardoLivenessFacetecSDKe do motor FaceTec distribuídos 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.Instalação
1
Obter os binários
Baixe na plataforma da Valid os dois arquivos: o
.aar do LivenessFacetecSDK (liveness-facetec-sdk-2.0.0.aar, com os módulos internos do SDK e as bibliotecas nativas das duas ABIs suportadas) e o .aar do motor FaceTec (facetec-sdk-10.1.18.aar), entregue separadamente.2
Adicionar os AARs ao app
Copie os dois arquivos 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 os AARs 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 do SDK.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
Os.aar do SDK e da FaceTec já trazem, cada um, seu próprio proguard.txt, aplicados automaticamente pelo AGP ao app cliente assim que os dois são declarados como dependência. Juntos, cobrem 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 os proguard.txt dos AARs foram efetivamente aplicados abrindo o mapping.txt gerado pelo R8.
Permissões
A solução 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 os AARs e configurar o Gradle