Guia Rápido de Uso

Requisitos de Compatibilidade

  • Target mínimo: iOS 15.0

  • Versão do Swift: 5+

  • Linguagem base: Swift

  • Gerenciador de dependência: CocoaPods, SPM

  • Credenciais:

    • AppKey: utilizada pelo provedor IProov
    • Token: utilizado pelo provedor SaaS (FaceTec e Fortface)
  • Permissões no Info.plist:

    • NSCameraUsageDescription: acesso à câmera
    • NSLocationWhenInUseUsageDescription: localização do dispositivo.
  • Ambientes suportados:

    • hml: Homologação
    • prd: Produção

Instalação

CocoaPods

Passo 1: Caso você não possua um arquivo Podfile no seu projeto, basta executar o comando abaixo na raiz do projeto que um novo arquivo desse será criado:

pod init

Passo 2: No início do Podfile, inclua a linha abaixo:

source 'https://github.com/oititec/ios-artifactory.git'

Passo 3: Em seguida, adicione as dependências necessárias:

pod 'CertifaceSDK', '~> x.y.z'

Substitua x.y.z pela versão mais recente fornecida pela CertiFace.

Para uso da versão de desenvolvimento (menos segura) deve-se utilizar o CertifaceSDK-Debug

Passo 4: Execute o comando de instalação dos pods:

pod install

SPM

Xcode UI

  1. Adicione o pacote selecionando a opção File → Add Package Dependencies no Xcode

  2. Pesquise pela URL do módulo, selecione a opção Up to Next Major Version na lista de Dependency Rule e clique no botão Add Package.

https://github.com/oititec/ios-modules-certiface.git
  1. Clique no botão Add Package.

Package manifest

  1. Adicione o package do CertifaceSDK na vetor de dependências:
dependencies: [
    .package(
        name: "CertifaceSDK",
        url: "https://github.com/oititec/ios-modules-certiface.git",
        // Especifique a versão desejada
        .upToNextMajor(from: "X.Y.Z")
    )
]
  1. Adicione o produto do CertifaceSDK na vetor de dependências do target desejado:
.target(
    name: "MyTarget",
    dependencies: [
        .product(name: "CertifaceSDK", package: "ios-modules-certiface"),
    ]
)

Criação do provedor de Liveness

O CertifaceSDK utiliza o padrão de fábrica para criar instâncias específicas de cada provedor de Liveness:

// iProov (credencial: AppKey)
let manager = CertifaceSDKFactory.createLivenessManager(for: .iproov)

// SaaS - FaceTec ou Fortface (credencial: Token)
let manager = CertifaceSDKFactory.createLivenessManager(for: .saas)

Provedores Disponíveis

ProvedorIdentificador EnumSuporte
IProovLivenessProvider.iproov✅ Suporte Atual
FaceTecLivenessProvider.saas (definido pelo Token)✅ Suporte Atual
FortfaceLivenessProvider.saas (definido pelo Token)✅ Suporte Atual

Credenciais

O LivenessManagerOptions possui dois construtores, de acordo com o provedor utilizado:

// IProov: AppKey
let options = LivenessManagerOptions
    .builder(appKey: "APP_KEY", environment: .hml)
    .build()

// SaaS (FaceTec / Fortface): Token
let options = LivenessManagerOptions
    .builder(token: "TOKEN", environment: .hml)
    .build()

Provedor: IProov

Este provedor oferece uma jornada de verificação baseada em luz e detecção passiva. Utiliza a AppKey como credencial e o identificador .iproov.

Execução da Jornada

Após criar o LivenessManagerOptions fornecendo a AppKey e o ambiente de execução, inicie a jornada com:


// MARK: - Implementação
import CertifaceSDK

final class ContentViewController: UIViewController {
    func executeLiveness() {
        let options = LivenessManagerOptions
            .builder(appKey: "APP_KEY", environment: .hml)
            .build()

        let manager = CertifaceSDKFactory.createLivenessManager(for: .iproov)
        manager.start(at: self, options: options, callback: self)
    }
}

extension ContentViewController: LivenessCallback {
    func onSuccess(_ result: LivenessResult) {
        // Código ...
    }

    func onError(_ error: LivenessError) {
        // Código ...
    }
}
  

Provedor: FaceTec

Este provedor oferece uma jornada de verificação baseada no mapeamento 3D da face. É executado pelo provedor .saas, que utiliza o Token como credencial.

Execução da Jornada

Após criar o LivenessManagerOptions fornecendo o Token e o ambiente de execução, inicie a jornada com:


// MARK: - Implementação
import CertifaceSDK

final class ContentViewController: UIViewController {
    func executeLiveness() {
        let options = LivenessManagerOptions
            .builder(token: "TOKEN", environment: .hml)
            .build()

        let manager = CertifaceSDKFactory.createLivenessManager(for: .saas)
        manager.start(at: self, options: options, callback: self)
    }
}

extension ContentViewController: LivenessCallback {
    func onSuccess(_ result: LivenessResult) {
        // Código ...
    }

    func onError(_ error: LivenessError) {
        // Código ...
    }
}
  

Provedor: Fortface

Este provedor oferece uma jornada de verificação facial com orientações em tempo real durante o enquadramento do rosto. Assim como a FaceTec, é executado pelo provedor .saas com o Token da jornada.

Execução da Jornada


// MARK: - Implementação
import CertifaceSDK

final class ContentViewController: UIViewController {
    func executeLiveness() {
        let options = LivenessManagerOptions
            .builder(token: "TOKEN", environment: .hml)
            .build()

        let manager = CertifaceSDKFactory.createLivenessManager(for: .saas)
        manager.start(at: self, options: options, callback: self)
    }
}

extension ContentViewController: LivenessCallback {
    func onSuccess(_ result: LivenessResult) {
        // Código ...
    }

    func onError(_ error: LivenessError) {
        // Código ...
    }
}
  

Fluxo de Telas

Tela de Processamento (Validação)

Primeira tela da jornada. Exibida para validação das credenciais e geração da sessão de reconhecimento facial (liveness). Nos provedores FaceTec e Fortface, também é nessa etapa que o Token é validado e o provedor da jornada é definido. Mostra:

  • Indicador de processamento

Tela de Permissão de Câmera

Exibida quando o usuário ainda não concedeu permissão de acesso à câmera. Contém:

  • Explicação da necessidade da permissão
  • Botão para conceder acesso
  • Redirecionamento para as configurações do dispositivo caso a permissão tenha sido negada anteriormente

Tela Inicial/Instruções (Pré-Liveness)

Tela que apresenta as instruções iniciais ao usuário antes do início do processo de verificação facial. Pode ser desabilitada com setShowInstructionsScreen(false). Inclui:

  • Explicação do processo de liveness
  • Requisitos de iluminação e posicionamento
  • Botão de início do processo

Tela de Liveness

Exibida durante a coleta e análise do liveness. Mostra:

  • Feedback visual em tempo real do enquadramento facial
  • Instruções dinâmicas (ex: "Mantenha o rosto no quadro")

Tela de Processamento

Exibida durante o processamento do liveness coletado. Mostra:

  • Barra de progresso ou indicador de processamento

Tela de Resultado

Exibida ao final do processamento do liveness coletado. Mostra:

  • Feedback visual quanto ao sucesso ou erro do Liveness.
  • IProov e Fortface: quando é necessária uma nova tentativa, a tela exibe o botão de retry, que reinicia a captura. No Fortface, as telas de sucesso e de erro são fechadas automaticamente após 3 segundos.
  • FaceTec: o resultado é exibido pela própria tela da FaceTec.

Ambiente de Testes

Durante o desenvolvimento, utilize o ambiente hml com AppKeys (IProov) ou Tokens (FaceTec e Fortface) fornecidos pela equipe CertiFace.

⚠️

Evite o uso do ambiente de produção para testes manuais.