Skip to main content
A UI da captura é renderizada pelo próprio FaceTec SDK. Você consegue personalizá-la passando um LivenessFacetecSDKCustomization em LivenessFacetecSDKConfig. Cada propriedade é um espelho tipado da customização correspondente do FaceTec — quando você define um campo, ele é aplicado; quando deixa nil, o FaceTec usa o padrão.

Estrutura geral

import LivenessFacetecSDK

var customization = LivenessFacetecSDKCustomization()

// Defina apenas o que precisar — tudo é opcional.
customization.cancelButton   = nil  // LivenessFacetecSDKCustomization.CancelButtonCustomization?
customization.feedback       = nil  // LivenessFacetecSDKCustomization.FeedbackCustomization?
customization.frame          = nil  // LivenessFacetecSDKCustomization.FrameCustomization?
customization.guidance       = nil  // LivenessFacetecSDKCustomization.GuidanceCustomization?
customization.oval           = nil  // LivenessFacetecSDKCustomization.OvalCustomization?
customization.overlay        = nil  // LivenessFacetecSDKCustomization.OverlayCustomization?
customization.resultScreen   = nil  // LivenessFacetecSDKCustomization.ResultScreenCustomization?
customization.vocalGuidance  = nil  // LivenessFacetecSDKCustomization.VocalGuidanceCustomization?

customization.overrideResultScreenSuccessMessage = nil
customization.securityWatermarkImage             = nil

let config = LivenessFacetecSDKConfig(customization: customization)

try await LivenessFacetecSDKClient.shared.initialize(config: config)

Sub-customizações disponíveis

PropriedadeTipoO que controla
cancelButtonLivenessFacetecSDKCustomization.CancelButtonCustomization?Posição e imagem do botão de cancelar
feedbackLivenessFacetecSDKCustomization.FeedbackCustomization?Cores e fonte das mensagens de feedback em tela
frameLivenessFacetecSDKCustomization.FrameCustomization?Borda, raio e sombra do frame
guidanceLivenessFacetecSDKCustomization.GuidanceCustomization?Cores e fontes das telas de guia
ovalLivenessFacetecSDKCustomization.OvalCustomization?Cor e espessura do oval de detecção
overlayLivenessFacetecSDKCustomization.OverlayCustomization?Cor de fundo do overlay e branding
resultScreenLivenessFacetecSDKCustomization.ResultScreenCustomization?Tela de resultado (cores, animações)
vocalGuidanceLivenessFacetecSDKCustomization.VocalGuidanceCustomization?Modo de guia por voz
overrideResultScreenSuccessMessageString?Mensagem customizada na tela de sucesso
securityWatermarkImageSecurityWatermarkImage?Marca-d’água: .faceTec, .faceTecZoom, .none

Exemplo: cores do oval e overlay sem branding

import LivenessFacetecSDK
import UIKit

var customization = LivenessFacetecSDKCustomization()

var oval = LivenessFacetecSDKCustomization.OvalCustomization()
oval.strokeColor    = UIColor(red: 0.72, green: 0.16, blue: 0.10, alpha: 1.0)
oval.progressColor1 = UIColor(red: 0.72, green: 0.16, blue: 0.10, alpha: 1.0)
oval.progressColor2 = UIColor(red: 0.91, green: 0.27, blue: 0.29, alpha: 1.0)
customization.oval = oval

var overlay = LivenessFacetecSDKCustomization.OverlayCustomization()
overlay.showBrandingImage = false
customization.overlay = overlay

let config = LivenessFacetecSDKConfig(customization: customization)
try await LivenessFacetecSDKClient.shared.initialize(config: config)

Boas práticas

Mudanças visuais profundas no fluxo do FaceTec precisam respeitar as diretrizes de marca da própria FaceTec — em especial, a marca-d’água de segurança (securityWatermarkImage) não deve ser ocultada sob risco de violar o contrato de uso do motor.
  • Mantenha contraste suficiente entre o oval guia e o fundo para preservar a acessibilidade.
  • Evite fontes muito pequenas em guidance — o FaceTec já balanceia tamanhos para legibilidade em câmeras frontais.
  • Teste em iPhones de tela compacta (SE/Mini) — alguns elementos posicionados manualmente podem sobrepor o oval.
  • Reuse o mesmo LivenessFacetecSDKCustomization entre o initialize e chamadas subsequentes; trocar customização exige reinicializar o SDK em uma nova execução do app.

Próximos passos

Implementação

Veja como passar a customização no initialize

Solução de problemas

Diagnostique problemas com cores, fontes e recursos