Skip to main content

Requisitos

RequisitoVersão Mínima
iOS17.0+
Xcode15.0+
Swift6.1+

Permissões Necessárias

O SDK requer a permissão de câmera no Info.plist:
<key>NSCameraUsageDescription</key>
<string>Este aplicativo precisa acessar a camera para realizar a verificacao de prova de vida.</string>
O SDK solicita automaticamente a permissão de câmera quando necessário. Se o usuário negar a permissão, o SDK retornará o erro cameraPermissionDenied.

Instalação

Passo 1: Adicionar os XCFrameworks

Copie os arquivos HubLivenessSDK.xcframework e FaceTecSDK.xcframework para a raiz do seu projeto:
seu-projeto/
  Frameworks/
    HubLivenessSDK.xcframework/
    FaceTecSDK.xcframework/
  SeuApp/
    SeuApp.xcodeproj

Passo 2: Adicionar ao Xcode

  1. Abra seu projeto no Xcode
  2. Selecione o target da sua aplicação
  3. Vá para a aba General
  4. Na seção Frameworks, Libraries, and Embedded Content, clique em +
  5. Clique em Add Other…Add Files…
  6. Selecione os arquivos .xcframework adicionados
  7. Configure como Embed & Sign para cada framework

Passo 3: Configurar Build Phases

No target do app, vá em Build Phases: Adicione ambos os frameworks:
  • HubLivenessSDK.xcframework
  • FaceTecSDK.xcframework

Embed Frameworks

Crie (ou edite) a fase “Embed Frameworks” e adicione ambos os xcframeworks com as opções:
OpçãoValor
Code Sign On CopyHabilitado
Remove Headers On CopyHabilitado

Passo 4: Build Settings

Verifique a seguinte configuração no target:
LD_RUNPATH_SEARCH_PATHS = @executable_path/Frameworks

Configuração do Info.plist

Adicione as seguintes chaves ao seu Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- Permissão de câmera (obrigatório) -->
    <key>NSCameraUsageDescription</key>
    <string>Este aplicativo precisa acessar a camera para realizar a verificacao de prova de vida.</string>

    <!-- Outras configurações recomendadas -->
    <key>UIRequiresFullScreen</key>
    <true/>

    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
</dict>
</plist>
A orientação Portrait é recomendada para melhor experiência de captura facial.

Configuração Inicial

O SDK deve ser inicializado antes de qualquer uso. A inicialização é assíncrona e deve ser feita com async/await:
import HubLivenessSDK

@MainActor
func initializeLivenessSDK() async {
    let config = HubConfig(
        apiBaseUrl: "https://api.yourserver.com",
        apiKey: "your-api-key",
        appName: "YourAppName",
        cek: "your-base64-encoded-cek",
        localization: .ptBR
    )

    do {
        try await HubLiveness.shared.initialize(config: config)
        print("SDK inicializado com sucesso!")
    } catch {
        print("Erro ao inicializar SDK: \(error)")
    }
}
O SDK utiliza o padrão Singleton. Use HubLiveness.shared para acessar a instância.

Parâmetros de Configuração

ParâmetroTipoDescrição
apiBaseUrlStringURL base da API de liveness
apiKeyStringChave de API para autenticação
appNameStringNome da aplicação para identificação
cekStringChave CEK codificada em Base64
localizationHubLocalizationConfiguração de idioma e textos (opcional)

Próximos Passos