> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-4.md).

# Histórico de alterações

## Notas de versão

Últimas alterações para **CafSDK iOS**, ordenadas da mais nova para a mais antiga.

### Data de lançamento

* 10/13/2026

### v7.9.0

#### Novos recursos

* **Tipo de captura do Document Detector:** novo `captureType` parâmetro em `CerttaDocumentDetectorConfiguration`. Use `.manual` (padrão) apenas para captura manual, ou `.automatic` para captura automática com fallback para captura manual após 10 segundos. Consulte [Personalizando o Document Detector](/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-2/customizing-document-detector.md#documentdetectorcapturetype).

### v7.8.0

{% hint style="warning" %}
**Mudança incompatível — `faceRecognitionFailure` tem um novo `descrição` valor**

`LivenessFailure.faceRecognitionFailure` agora tem três valores associados: `resultado`, `causa` e `descrição`. `causa` agora é o código estável em snake\_case (por exemplo `face_too_far`), e `descrição` é a mensagem localizada e legível por humanos. Se você `migrar` para `LivenessFailure`, atualize o `faceRecognitionFailure` case:

{% code overflow="wrap" %}

```swift
// Antes da 7.8.0
case .faceRecognitionFailure(let result, let cause):

// A partir da 7.8.0
case .faceRecognitionFailure(let result, let cause, let description):
```

{% endcode %}

Veja [Tratamento de falhas](/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-1/handling-failures.md) para a lista de `causa` valores.
{% endhint %}

#### Melhorias

* **Código de falha do Face Liveness:** `causa` em `faceRecognitionFailure` agora contém um código estável que você pode mapear para suas próprias mensagens, em vez da mensagem localizada. A mensagem agora está em `descrição`.
* **Mensagens de erro mais limpas:** as strings em `imageCaptureFailure` e em todos os `CerttaError` casos (Face Liveness e Document Detector) não começam mais com o tipo de erro interno. Eles contêm apenas a mensagem.

### v7.4.1

#### Atualizações

* Atualizou a dependência iProov para **13.2.0** em `CafFaceLiveness`.
* **Alteração do SP do iProov:** O fluxo de liveness agora segue o SP do iProov fornecido pelo backend. Mudança no servidor — nenhuma alteração de integração necessária.

### v7.4.0

{% hint style="warning" %}
**Mudança incompatível — dependência de Fingerprint**

A partir de **v7.3.1**, `CafFingerprintProvider` é um módulo separado, **opcional** e não é mais incluído automaticamente com o Face Liveness. Se sua integração depende de fingerprinting do dispositivo durante o fluxo de liveness, agora você deve adicionar o módulo explicitamente.

**CocoaPods** — adicione o subspec ao seu `Podfile`, junto com a instalação existente do Face Liveness:

{% code overflow="wrap" %}

```
pod 'CafSDKiOS/CafFaceLiveness'pod 'CafSDKiOS/CafFingerprintProvider'   # habilita fingerprinting
```

{% endcode %}

**Swift Package Manager** — adicione o `CafFingerprintProvider` produto ao seu target (ele é exposto independentemente de `CafFaceLiveness`):

{% code overflow="wrap" %}

```
.product(name: "CafFaceLiveness",        package: "CafSDKiOS"),.product(name: "CafFingerprintProvider", package: "CafSDKiOS")   
```

{% endcode %}
{% endhint %}

### Atualizações

* **Atualização do SDK de Fingerprint**: O SDK FingerprintJS Pro subjacente foi atualizado da versão 2.7.0 para 2.16.0

### v7.0.0

#### Segurança

* Atualizou o **PayFace** provedor para sua versão mais recente, reforçando a segurança do fluxo Face Liveness.

### v6.4.2

#### Melhorias

* Os payloads de analytics agora incluem metadados mais ricos e mais padronizados em todos os fluxos de captura.

#### Segurança

* Adicionou o `securityEnabled: Bool = false` propriedade a `CafSDKConfiguration`, permitindo que a aplicação da segurança seja alternada programaticamente. Quando definido como `true`, o SDK executa uma validação de segurança rigorosa durante a inicialização e a execução; se uma violação de segurança for detectada, o SDK lança uma `securityException` e encerra o fluxo.

  ```swift
  let sdkConfig = CafSDKConfiguration(
      presentationOrder: [.faceLiveness, .documentDetector],
      securityEnabled: true
  )
  ```
* Removeu a `CAFEnforceSecurity` `Info.plist` sinalizador. A aplicação da segurança agora é controlada exclusivamente por meio da nova `securityEnabled` propriedade em `CafSDKConfiguration`. Integrações existentes que dependem do sinalizador no Info.plist devem migrar para definir `securityEnabled` programaticamente.

#### Correções

* Corrigiu problemas que afetavam o fluxo de captura de documento RG em `DocumentDetector`.

### v6.3.0

#### Melhorias

* Removeu a `KMP/CafSolutions` dependência da pilha do provedor de liveness.
* Melhorou a qualidade dos payloads de analytics com metadados mais ricos e mais padronizados.

### v6.2.0

{% hint style="warning" %}
Versões anteriores a `6.2.0` fizeram o iProov Liveness parar de funcionar após 12 de março de 2026. Use `6.2.0` ou posterior.
{% endhint %}

#### Mudanças incompatíveis

* A versão mínima compatível do iOS agora é **15.0+**.

#### Melhorias

* Atualizou a dependência iProov para **13.1.0**.
* Adicionou novos `CafFailureType` casos:
  * `óculos`
  * `faceNotFound`
  * `framesBlurry`
  * `lightingIssues`
  * `motionIssue`
  * `backgroundIssue`
  * `deviceIssue`
  * `deviceRestart`
  * `systemError`
  * `rejeitado`
  * `tempo limite`
  * `userNotFound`
  * `processingFault`

#### Importante

* O suporte a reverse proxy será removido em uma versão futura.
* É necessária uma atualização relacionada ao iProov para evitar problemas de certificado.
* Após **15 de março de 2026**, **Face Liveness** e **Face Auth** os serviços podem ficar indisponíveis.

### v6.1.0

#### Melhorias

* Atualizou a implementação de analytics.

### v6.0.0

#### Mudanças incompatíveis

* Renomeou `CafInstructionsConfiguration` propriedades para dar suporte às telas de instruções de captura e upload:
  * `title` → `captureTitle`
  * `descriptionText` → `captureDescriptionText`
  * `steps` → `captureSteps`
  * `buttonTitle` → `captureButtonTitle`
  * `headerImage` → `captureHeaderImage`
* Adicionou novas propriedades de instrução de upload:
  * `uploadTitle`
  * `uploadDescriptionText`
  * `uploadSteps`
  * `uploadButtonTitle`
  * `uploadHeaderImage`

#### Segurança

* Adicionou verificações de proteção em tempo de execução para instrumentação dinâmica e ameaças relacionadas.
* Adicionou `securityException` a `CafErrorType`.
* O SDK agora encerra o fluxo quando detecta uma violação de segurança durante a inicialização ou execução.

### v5.7.0

#### Novos recursos

* Adicionou `loadSession()` a `CafSDKProvider` para pré-carregamento da sessão do Face Liveness.
* Enquanto o pré-carregamento é executado, o callback unificado emite `.loading` e `.loaded`.

#### Melhorias

* Adicionou campos de analytics para melhor visibilidade da captura de documentos.
* `CafDocumentDetectorConfig.flow` agora falha rapidamente com `libraryException` quando estiver vazio.
* A validação de attestation e de token agora distingue entre erros de rede, tokens inválidos e respostas inválidas.

#### Mudanças de comportamento

* `manualCaptureTime` em `CafDocumentDetectorConfig` agora tem como padrão `0` segundos.
* A captura manual continua configurável por meio de `manualCaptureEnabled` e `manualCaptureTime`.

### v5.6.2

#### Novos recursos

* Adicionou `faceAuthentication` a `CafErrorType` para erros de backend quando `executeFaceAuth` está ativado.

#### Melhorias

* Melhorou a validação de analytics.

### v5.5.1

#### Correções

* Corrigiu o `CafFaceLiveness` fluxo de tentar novamente.

#### Atualizações

* Fez downgrade do Fingerprint de `2.7.0` a `2.6.0` devido a problemas de compatibilidade.

### v5.5.0

#### Novos recursos

* Adicionou suporte opcional para **PayFace (Fortface)** do provedor:
  * Produto do Swift Package Manager: `FortfaceProvider`
  * subspec do CocoaPods: `CafSDKiOS/FortfaceProvider`
* Adicionou `flCustomizations` a `CafFaceLivenessConfig`.
* Adicionou `CafFLPayFaceCustomization` para personalização de texto e fonte do PayFace.
* Adicionou sufixos laterais localizados automáticos para `customTitles` em `CafSelectDocumentConfig`.

#### Documentação

* Atualizou os exemplos de primeiros passos para incluir `FortfaceProvider` e `flCustomizations`.

### v5.4.4

#### Novos recursos

* Adicionou substituições de título e descrição por documento na tela de seleção de documento por meio de:
  * `CafSelectDocumentConfig.customTitles`
  * `CafSelectDocumentConfig.customDescriptions`
* Essas substituições afetam tanto a lista de seleção quanto os rótulos de etapa gerados.

### v5.4.3

#### Melhorias

* Normalizou mensagens de erro e de falha para uma saída de callback mais limpa.
* As telas de falha agora abrem em tela cheia para melhor consistência.

### v5.4.2

#### Correções

* Melhorou a confiabilidade da conclusão quando nenhum modal é apresentado.
* Os provedores agora garantem callbacks mesmo quando as telas de instrução ou transição estão desativadas.
* Melhorou a lógica de fechamento no Face Liveness e no Document Detector para evitar fluxos travados e callbacks perdidos.

### v5.4.1

#### Melhorias

* Melhorou a validação de upload de PDF com mensagens mais claras para arquivos criptografados, bloqueados ou ilegíveis.
* Tornou o comportamento de cancelamento mais consistente durante o upload de documentos.

#### Correções

* Corrigiu a conclusão do fluxo quando as telas de transição estão desativadas.
* Corrigiu a entrega de callbacks nos modos com e sem lote.
* A seleção de documentos agora preserva a ordem configurada ao confirmar múltiplas seleções.

### v5.4.0

#### Novos recursos

* Adicionou `enableTransitionScreens` a `CafSDKConfiguration`.
  * `true`: exibe telas de transição entre módulos.
  * `false`: executa os módulos sequencialmente sem telas intermediárias.
* Melhorou o tratamento e a padronização de erros entre os módulos.
* Melhorou os analytics para erros, sessões e pontos de entrada.

#### Melhorias

* Melhorou as mensagens de validação de token para tokens vazios e IDs de pessoa.

### v5.3.0

#### Novos recursos

* Adicionou cores de personalização do diálogo a `CafColorConfiguration`:
  * `dialogBackgroundColor`
  * `dialogBorderColor`

### v5.2.0

#### Novos recursos

* Fluxos de documento digital para **RG Digital** e **CNH Digital** agora:
  * força o modo de upload,
  * pula a tela de seleção da fonte da foto,
  * vai diretamente para o fluxo de upload.

#### Melhorias

* `CafUploadSettings.enable` agora tem como padrão `true`.
* Melhorou a lógica de seleção de RG e CNH quando estão disponíveis documentos frente/verso e completos.
* As opções de documento digital agora têm prioridade nas telas de seleção.

#### Correções

* Corrigiu um problema no fluxo de upload causado por seleção incorreta de documento.

### v5.1.0

#### Melhorias

* Adicionou melhorias de segurança tanto ao Document Detector quanto ao `CafFaceLiveness`.
* Adicionou `maxRetryAttempts` ao Document Detector para controle de novas tentativas em caso de erro do servidor.
* Valor padrão: `2`.

#### Correções

* `CafSDKProvider` a inicialização agora requer corretamente ambos `mobileToken` e `personId`.

### v5.0.2

#### Atualizações

* Atualizou a versão de compilação do Xcode de `16.2` a `16.4`.

### v5.0.1

#### Melhorias

* Atualizou `iProov` de `12.3.0` a `12.3.1`.

#### Novos recursos

* Moveu `reverseProxyConfig: CafReverseProxyConfig` para `CafFaceLivenessConfig`.
* Consolidou `authBaseUrl`, `livenessBaseUrl`e `certificados` em `CafFaceLivenessConfig`.
* Adicionou `executeFaceAuth`.
* Adicionou `maxRetryAttempts` a `CafFaceLivenessConfig`.

### v4.1.1

#### Melhorias

* Melhorou os analytics híbridos para **Flutter** e **React Native** integrações.

### v4.1.0

#### Novos recursos

* Adicionou `customLocalization: String?` nos builders do Face Liveness.
* Adicionou novos tipos de personalização do Document Detector:
  * `CafUploadMessagesCustomization`
  * `CafFailedPhotoCustomization`

### v4.0.0

#### Mudanças incompatíveis

* `CafUnifiedResponse` agora expõe apenas `signedResponse: String`.
* Removeu a `[String: Any]` dicionário de resultados.
* Adicionou `invalidResponseException` a `CafErrorType`.
* Adicionado suporte a tentativas para uploads de documentos interrompidos ou lentos.

#### Notas de migração

1. Atualize a dependência:
   * Swift Package Manager: `from: "4.0.0"`
   * CocoaPods: `pod 'CafSDKiOS', '~> 4.0.0'`
2. Atualize o tratamento de sucesso para usar `signedResponse`.
3. Remova todos os usos de `response.result`.
4. Adicione tratamento para `.invalidResponseException`.
5. Se você dependia do antigo dicionário de resultados, migre para analisar o JWT em `signedResponse`.

```swift
case .success(let responses):
    responses.forEach { response in
        print("Module: \(response.moduleName) SignedResponse: \(response.signedResponse)")
    }
```

### v3.0.0

#### Novos recursos

* Análises aprimoradas.
* Adicionado tratamento detalhado `.failure` para `CafUnifiedEvent`.
* Adicionou `CafDDCustomization` e tipos de personalização relacionados:
  * `CafPreviewCustomization`
  * `CafDDUploadCustomization`
  * `CafMessageCustomization`
* Adicionou `customMessage` e `customOkButtonTitle` a `CafDocumentDetectorStep`.

#### Melhorias

* Melhor diferenciação entre falhas operacionais e erros gerais de execução.
* O Document Detector agora herda seu tema principalmente do global `CafColorConfiguration`.

#### Mudanças incompatíveis

* `.failure` agora usa `CafFailureType`.
* `.error` agora usa `CafErrorType`.
* `CafDocumentDetectorConfig` não oferece mais suporte a:
  * `previewTitle`
  * `previewSubtitle`
  * `previewConfirmLabel`
  * `previewRetryLabel`
  * `messageSettings`
* `CafDocumentDetectorLayout` não oferece mais suporte a:
  * `primaryColor`
  * `uploadBackGroundColor`
  * `previewBackGroundColor`

#### Notas de migração

1. Atualização `.failure` tratamento:

```swift
case .failure(response: String?, type: CafFailureType, description: String?)
```

2. Atualização `.error` tratamento:

```swift
case .error(type: CafErrorType, description: String)
```

3. Substitua as configurações removidas de preview e mensagem por `ddCustomizations`.
4. Substitua as substituições do popup da etapa por `customMessage` e `customOkButtonTitle`.
5. Mova a personalização de cores do Document Detector para o global `CafColorConfiguration`.

### v2.0.0

#### Novos recursos

* `CafSDKConfiguration(waitForAllServices: true)` agora agrupa todas as respostas dos módulos em uma única `.success`.
* `.success` agora sempre retorna um array de respostas.

#### Mudanças incompatíveis

* `CafUnifiedEvent.success` alterado para `success(responses: [CafUnifiedResponse])`.

#### Notas de migração

1. Atualize para `v2.0.0` ou posterior.
2. Altere o tratamento de sucesso para esperar um array:

```swift
case .success(let responses):
    responses.forEach { response in
        // Handle each module response
    }
```

### v1.4.0

#### Novos recursos

* Introduzido `CafSDKProvider` como o ponto de entrada unificado para Face Liveness e Document Detector.
* Adicionou `CafSDKProvider.Builder` para configuração modular e segura por tipo.
* Adicionou `CafSDKConfiguration` para ordem de execução e tema compartilhado da interface.
* Autenticação, ambiente e registro unificados entre os módulos.

#### Documentação

* Guias de integração do Swift Package Manager e do CocoaPods revisados.
* Adicionados exemplos detalhados para `CafFaceLivenessConfig` e `CafDocumentDetectorConfig`.

#### Aprimoramentos de configuração

* Face Liveness:
  * personalização das instruções com `CafInstructionsConfiguration`
  * endpoints de proxy reverso com `authBaseUrl` e `livenessBaseUrl`
* Document Detector:
  * fluxo de captura em várias etapas com `[CafDocumentDetectorStep]`
  * personalização da interface com `CafDocumentDetectorLayout` e `CafMessageSettings`
  * suporte a proxy com `CafProxySettings`

#### Mudanças incompatíveis

* Adicionado o novo módulo de integração: `CafSDK`
* Módulos renomeados:
  * `FaceLiveness` → `CafFaceLiveness`
  * `DocumentDetector` → `CafDocumentDetector`
* Ferramentas mínimas atualizadas:
  * Xcode `16.2+`
  * iOS `13.0+`

#### Notas de migração

1. Substitua os inicializadores independentes do módulo por `CafSDKProvider`.
2. Altere os casos do enum para minúsculas, por exemplo `.CNH_FRONT` → `.cnhFront`.
3. Use `CafDocumentDetectorStep(stepType:)` em vez dos construtores legados.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.caf.io/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-4.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
