> 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/flutter/changelog.md).

# Histórico de alterações

Notas de versão do SDK Flutter. Acompanhe versões, mudanças incompatíveis, atualizações de provider e notas de migração para Certta, Face Liveness e Document Detector.

## Notas da versão

{% hint style="danger" %}
Devido a um erro de ofuscação da Payface, a versão **2.3.0** foi descontinuada e não deve mais ser usada. Para mais informações, entre em contato com nossa equipe de suporte.
{% endhint %}

### caf\_sdk\@2.5.0

#### **Data de lançamento**

* 10/13/2026

#### **Destaques**

* **Android: recuperação de resultado após a morte do processo.** Se o sistema operacional encerrar o processo do app enquanto um fluxo do Caf, Certta Document Detector ou Certta Document Detector UI estiver aberto (por exemplo, o usuário permanece na galeria durante um upload), o resultado não é mais perdido. Ele é entregue ao stream do Dart assim que seu app se inscreve nele novamente.

#### **Atualizações**

* Os resultados recuperados são entregues pelos mesmos streams que você já usa: `eventStream` (`CafSdk`), `CerttaDocumentDetectorEvent` e `CerttaDocumentDetectorUiEvent`. Nenhum novo evento, nome ou payload.
* Inscreva-se no stream o quanto antes (por exemplo, em `initState` da sua primeira tela). Um evento recuperado é entregue quando o listener é anexado.
* Apenas o último resultado é mantido. Os fluxos de Face Liveness não são recuperados.
* Apenas Android. O comportamento no iOS permanece inalterado.
* Sem mudanças na API e sem necessidade de migração.

### caf\_sdk\@2.4.0

#### Data de lançamento

* 09/28/2026

#### Destaques

* **Certta DevX (primeiro lançamento híbrido):** Novo `CerttaSdk` API com Document Detector e Face Liveness (núcleo e UI) no Android e iOS.
* Configure a sessão uma vez com `configureSdk(CerttaConfiguration)`, depois abra cada módulo independentemente (`liveness.open`, `documentDetector.open`, `documentDetectorUi.open`).
* A sequência `CafSdk` / `initializeCafSdk` continua disponível no mesmo pacote.

#### Atualizações

* Novo import público: `package:caf_sdk/certta_sdk.dart`.
* Streams de eventos por módulo (`CerttaLivenessEvent`, `CerttaDocumentDetectorEvent`, `CerttaDocumentDetectorUiEvent`) e `CerttaSdk.logStream`.
* Em tempo de execução `updateUserId` / `updateMobileToken` após a configuração inicial da sessão.
* `CerttaLivenessFailure` com códigos de `causa` estáveis e `descrição` para texto voltado ao usuário.
* Rejeições do bridge mapper lançam `PlatformException` com o código `BRIDGE_EXCEPTION`.

Veja [Guia de Instalação](/caf-sdk/caf-sdk-pt-br/flutter/installation-guide.md) e [Migrando do CafSdk](/caf-sdk/caf-sdk-pt-br/flutter/migrating-from-cafsdk.md).

### caf\_sdk\@2.2.0

#### **Data de lançamento**

* 08/14/2026

#### **Destaques**

* **Compatibilidade com Android 16:** Plugin Flutter atualizado para suportar Android 16 (`compileSdk` / `targetSdk` 36), alinhando-se aos requisitos do Google Play para apps direcionados às versões recentes do Android.

#### **Correções**

**Face Liveness:** Corrigido um problema no fluxo da Payface em que uma validação de rosto com falha ainda podia ser reportada como sucesso. Agora o SDK trata corretamente as falhas de validação e mostra a mensagem apropriada ao usuário.

**Document Detector:** Corrigidos problemas de captura e upload em tablets e dispositivos no modo paisagem, incluindo um breve flash incorreto de orientação da imagem na pré-visualização, falhas de captura automática com fotos finais desalinhadas e pequenos ajustes de UI nas margens do layout e no botão de fechar.

#### **Atualizações**

* Plugin Flutter `compileSdk` / `targetSdk` atualizado para **36**.

### caf\_sdk\@2.1.0

#### Data de lançamento

* 08-03-2026

{% hint style="warning" %}
**Alteração incompatível:** O módulo Fingerprint agora é opcional e pode ser configurado em `caf-modules-config.json` por meio da nova propriedade `fingerprint` (booleana). Por padrão, fingerprint é definido como `false`, ou seja, você não precisa adicionar essa propriedade ao JSON, a menos que queira usá-la. Para habilitar o módulo, você deve adicionar explicitamente `"fingerprint": true`. Importante: o Fingerprint também deve estar habilitado no Backoffice. Se ele não estiver habilitado no Backoffice, o SDK nunca chamará a biblioteca de fingerprint e nenhum dado será enviado, mesmo que a propriedade esteja definida como `true` localmente.
{% endhint %}

#### Destaques

* **Módulo Fingerprint opcional:** Controle a inclusão do recurso de fingerprint diretamente de `caf-modules-config.json`. Ele é desativado por padrão, garantindo que você só inclua a dependência quando for estritamente necessário.

#### Atualizações

* Novo `fingerprint` campo booleano em `caf-modules-config.json` para Android e iOS.

```json
{
  "documentDetector": true,
  "faceLiveness": true,
  "documentDetectorUI": true,
  "faceLivenessUI": true,
  "livenessProviders": [
    "iproov-lite",
    "payface",
    "facetec"
  ],
  "fingerprint": true
}
```

### caf\_sdk\@2.0.0

#### Data de lançamento

* 07-06-2026

{% hint style="warning" %}
**Alteração incompatível:** O `eventStream` agora emite um **tipado `Stream<CafResponse>`** em vez de um `Stream<dynamic>` com payloads `Map` . Atualize cada listener: substitua `event['eventName']` / `event['response']` pelos campos tipados — `event.success`, `event.error`, `event.failure`, `event.log`, `event.loading`, `event.loaded`, e `event.cancelled`. Veja [Tratamento de eventos](/caf-sdk/caf-sdk-pt-br/flutter/getting-started-with-the-sdk.md#event-handling) para o exemplo completo de migração.
{% endhint %}

#### Destaques

* **Relato de erros mais consistente**: Erros que ocorrem durante a inicialização do fluxo e que estão relacionados à integração interna do SDK agora são emitidos por meio do `error` evento como `BRIDGE_EXCEPTION`, para que possam ser tratados da mesma forma que qualquer outro erro do SDK.

#### Alterações incompatíveis

* **Stream de eventos tipado**: `CafSdk.eventStream` agora é `Stream<CafResponse>`. Os consumidores devem acessar os campos tipados de `CafResponse` (`success`, `error`, `failure`, `log`, `loading`, `loaded`, `cancelled`) em vez de indexar um `Map`.
* **Classes de configuração de módulo simplificadas**: Os envoltórios por módulo `...BuilderConfiguration` foram removidos. Os campos agora são passados diretamente nos objetos de configuração do módulo, e as configurações de UI estendem a configuração base em vez de aninhá-la:
  * `CafFaceLivenessBuilderConfiguration` removido — passe os campos diretamente em `CafFaceLivenessConfiguration`.
  * `CafDocumentDetectorBuilderConfiguration` removido — passe os campos diretamente em `CafDocumentDetectorConfiguration`.
  * `CafFaceLivenessUIBuilderInstructionScreenConfiguration` → `CafFaceLivenessUIInstructionScreenConfiguration`, e o campo `instructionScreenConfiguration` → `instructionScreen`.
  * `CafDocumentDetectorUIBuilderInstructionScreenConfiguration` → `CafDocumentDetectorUIInstructionScreenConfiguration`, e o campo `instructionScreenConfiguration` → `instructionScreen`.
  * `CafDocumentDetectorUIBuilderDocumentSelectionScreenConfiguration` → `CafDocumentDetectorUIDocumentSelectionScreenConfiguration`, e o campo `documentSelectionScreenConfiguration` → `documentSelectionScreen`.
  * No nível do SDK `CafSdkConfiguration` não foi alterada e ainda recebe `configuration: CafSdkBuilderConfiguration(...)`.
* **`initializeCafSdk` tipo de retorno**: alterado de `Future<bool?>` para `Future<bool>`.

#### Atualizações

* **Constantes de nome de evento**: Foram adicionadas as `CafSdkEventName` constantes (`CafUnifiedEvent.*`) para identificar eventos emitidos.
* **Novo `CafErrorType` valores**: Foram adicionados `INVALID_RESPONSE_EXCEPTION`, `CAMERA_EXCEPTION`, `FACE_AUTHENTICATION`, e `BRIDGE_EXCEPTION`. Observe que `BRIDGE_EXCEPTION` reporta erros que ocorrem durante a inicialização ou o início do fluxo; escute-o no `error` evento e trate-o como parte do seu tratamento normal de erros.
* **`CafSuccessResponse`**: `signedResponse` agora é tipado como `String?` (anteriormente `dynamic`), e `moduleName` a resolução é mais resiliente a variações de identificadores nativos.

#### Guia de migração — 1.x → 2.0.0

Três coisas mudaram para os integradores: como você lê eventos, como você monta as configurações de módulo e o tipo de retorno de `initializeCafSdk`. No nível do SDK `CafSdkConfiguration` (com `CafSdkBuilderConfiguration`) não foi alterada.

**1. Leia eventos do stream tipado**

```dart
// Antes (1.x) — Map bruto
_cafSdk.eventStream.listen((event) {
  final name = event['eventName'];
  final response = event['response'];
});

// Depois (2.0.0) — CafResponse tipado
_cafSdk.eventStream.listen((event) {
  if (event.success != null) {
    print('${event.success!.moduleName} -> ${event.success!.signedResponse}');
  } else if (event.error != null) {
    print('${event.error!.type} - ${event.error!.description}');
  }
  // também: event.failure, event.log, event.loading, event.loaded, event.cancelled
});
```

**2. Remova o módulo `...BuilderConfiguration` envoltório**

Passe os campos diretamente no objeto de configuração do módulo.

```dart
// Antes (1.x)
final faceLivenessConfig = CafFaceLivenessConfiguration(
  configuration: CafFaceLivenessBuilderConfiguration(
    loading: true,
    maxRetryAttempts: 2,
  ),
);

// Depois (2.0.0)
final faceLivenessConfig = CafFaceLivenessConfiguration(
  loading: true,
  maxRetryAttempts: 2,
);
```

```dart
// Antes (1.x)
final documentDetectorConfig = CafDocumentDetectorConfiguration(
  configuration: CafDocumentDetectorBuilderConfiguration(
    flow: [CafDocumentDetectorFlow(document: CafDocument.rgFront)],
    manualCaptureEnabled: false,
  ),
);

// Depois (2.0.0)
final documentDetectorConfig = CafDocumentDetectorConfiguration(
  flow: [CafDocumentDetectorFlow(document: CafDocument.rgFront)],
  manualCaptureEnabled: false,
);
```

**3. Atualize as configurações de UI (wrapper + tipos e campos renomeados)**

```dart
// Antes (1.x)
final faceLivenessUIConfig = CafFaceLivenessUIConfiguration(
  configuration: CafFaceLivenessBuilderConfiguration(loading: true),
  instructionScreenConfiguration:
      CafFaceLivenessUIBuilderInstructionScreenConfiguration(title: 'Vivacidade facial'),
);

// Depois (2.0.0)
final faceLivenessUIConfig = CafFaceLivenessUIConfiguration(
  loading: true,
  instructionScreen:
      CafFaceLivenessUIInstructionScreenConfiguration(title: 'Vivacidade facial'),
);
```

```dart
// Antes (1.x)
final documentDetectorUIConfig = CafDocumentDetectorUIConfiguration(
  configuration: CafDocumentDetectorBuilderConfiguration(
    flow: [CafDocumentDetectorFlow(document: CafDocument.rgFront)],
  ),
  instructionScreenConfiguration:
      CafDocumentDetectorUIBuilderInstructionScreenConfiguration(enable: true),
  documentSelectionScreenConfiguration:
      CafDocumentDetectorUIBuilderDocumentSelectionScreenConfiguration(title: 'Escolha o documento'),
);

// Depois (2.0.0)
final documentDetectorUIConfig = CafDocumentDetectorUIConfiguration(
  flow: [CafDocumentDetectorFlow(document: CafDocument.rgFront)],
  instructionScreen:
      CafDocumentDetectorUIInstructionScreenConfiguration(enable: true),
  documentSelectionScreen:
      CafDocumentDetectorUIDocumentSelectionScreenConfiguration(title: 'Escolha o documento'),
);
```

**4. Renomeie os imports de tipos (se você tiver importado os tipos removidos)**

| Removido (1.x)                                                     | Use em vez disso (2.0.0)                                    |
| ------------------------------------------------------------------ | ----------------------------------------------------------- |
| `CafFaceLivenessBuilderConfiguration`                              | `CafFaceLivenessConfiguration`                              |
| `CafDocumentDetectorBuilderConfiguration`                          | `CafDocumentDetectorConfiguration`                          |
| `CafFaceLivenessUIBuilderInstructionScreenConfiguration`           | `CafFaceLivenessUIInstructionScreenConfiguration`           |
| `CafDocumentDetectorUIBuilderInstructionScreenConfiguration`       | `CafDocumentDetectorUIInstructionScreenConfiguration`       |
| `CafDocumentDetectorUIBuilderDocumentSelectionScreenConfiguration` | `CafDocumentDetectorUIDocumentSelectionScreenConfiguration` |

**5. Atualize o `initializeCafSdk` tipo de retorno**

`initializeCafSdk` agora retorna `Future<bool>` em vez de `Future<bool?>`. Remova qualquer verificação de null no resultado aguardado.

```dart
// Antes (1.x)
final bool? started = await _cafSdk.initializeCafSdk(
  cafSdkConfiguration: config,
);
if (started == true) {
  // ...
}

// Depois (2.0.0)
final bool started = await _cafSdk.initializeCafSdk(
  cafSdkConfiguration: config,
);
if (started) {
  // ...
}
```

### caf\_sdk\@1.5.0

#### Data de lançamento

* 05-25-2026

#### Atualizações

* **Provedor de Face Liveness da Payface (Android)**: Atualize a versão de `1.18.2` para `1.19.2`.
* **Provedor de Face Liveness da Payface (iOS)**: Atualize a versão de `1.5.2` para `1.8.2`.

#### Correções

**Vivacidade facial**

* O erro de carregamento infinito ocorre quando o SDK retorna um erro.
* A primeira inicialização não estava funcionando ao usar `Payface` provedor.

### caf\_sdk\@1.4.0

#### Data de lançamento

* 05-08-2026

#### Correções

* **Detector de documentos**: Comportamento corrigido ao lidar com RG (documento de identidade nacional brasileiro) com a opção de documento digital.

### caf\_sdk\@1.3.0

#### Data de lançamento

* 04-13-2026

{% hint style="warning" %}
**Alteração incompatível:** Os provedores de Face Liveness agora podem ser configurados em `caf-modules-config.json` por meio de **`livenessProviders`** (string ou array). Quando fornecido, deve listar o(s) provedor(es) escolhido(s). Não use **`iproov-lite`** e **`iproov-full`** juntos—**`iproov-full`** usa uma versão diferente do Protobuf, e combiná-los causará erros de classes duplicadas na compilação. **PayFace** requer **`iproov-lite`** (Protobuf JavaLite); combinar PayFace com **`iproov-full`** causa conflitos de Protobuf na compilação. Se omitido, o SDK usa por padrão **`iproov-lite`** em ambas as plataformas. Um **valor vazio ou inválido** causa um erro de compilação no **Android**; no **iOS**, um valor vazio também recorre a `iproov-lite`PayFace [Etapa 2: Configurar a seleção de módulos](/caf-sdk/caf-sdk-pt-br/flutter/installation-guide.md#step-2-configure-module-selection) para mais detalhes.
{% endhint %}

#### Destaques

* **Provedores de Face Liveness configuráveis**: Escolha `iproov-lite`, `iproov-full`, `payface`, e/ou `facetec` em `caf-modules-config.json` em vez de depender dos padrões nativos implícitos.

#### Atualizações

* **Configuração de provedores de liveness**:
  * Novo **`livenessProviders`** campo em `caf-modules-config.json` para Android e iOS.
  * Documentado **Protobuf JavaLite** vs **Protobuf Java** mapeamento para **`iproov-lite`** vs **`iproov-full`**.
  * Esclarecido **multi-provedor** configurações usando um array e o **PayFace + iProov Lite** requisito.
* **Provedor de Liveness iProov**: Documentação e padrões atualizados para refletir o novo modelo de seleção de provedor.
* **Android ProGuard / R8**: Se o R8 relatar classes ausentes para os stubs de lint incluídos no SDK, adicione o seguinte a `proguard-rules.pro` (também listado em [Ofuscação de código](/caf-sdk/caf-sdk-pt-br/flutter/installation-guide.md#code-obfuscation)):

```proguard
-dontwarn com.android.tools.lint.**
-dontwarn io.caf.sdk.common.jvmshared.lint.**
```

### caf\_sdk\@1.2.0

#### Data de lançamento

* 02-09-2026

{% hint style="warning" %}
Versões anteriores a 1.2.0 farão com que o iProov Liveness se torne inoperante a partir de 12 de março de 2026. Para garantir o funcionamento adequado e a continuidade do serviço, use a versão 1.2.0 ou posterior.
{% endhint %}

#### Destaques

* **Provedor de Liveness atualizado**: Atualização crítica da versão do provedor iProov para maior estabilidade

#### Atualizações

* **Provedor de Liveness iProov**: Atualizou a versão interna do provedor iProov.

### caf\_sdk\@1.1.0

#### Data de lançamento

* 02-09-2026

#### Destaques

* **Novo módulo de segurança**: Introdução do `CafSecurity` módulo para validações de segurança
* **Integração com PayFace**: Adicionado suporte ao PayFace (Fortface) como provedor opcional de Face Liveness
* **Melhorias de estabilidade**: Correções importantes de travamentos e melhorias de estabilidade para o módulo Document Detector

#### Recursos

* **Módulo CafSecurity**:
  * Adicionado um novo módulo especificamente para validações de segurança
  * **Configuração**: Foram adicionados `enableSecurityModule` sinalizador em `CafSdkConfiguration` (valor padrão: `true`)
* **Integração com PayFace (Fortface)**:
  * Integração opcional com o provedor Face Liveness
  * **Configuração**: Nova propriedade `payFaceDebugMode` em `CafFaceLivenessConfiguration` para ativar o modo de depuração para o provedor PayFace

#### Correções

* **Detector de documentos**:
  * **Ciclo de vida da atividade**: Resolvidos vários travamentos relacionados ao gerenciamento do ciclo de vida da atividade (estados de inicialização, pausa e retomada)
  * **Ciclo de vida da câmera**: Melhorado o gerenciamento de recursos da câmera e do ciclo de vida das threads para evitar travamentos durante o encerramento do SDK
  * **Componentes da interface**: Resolvidos problemas de compatibilidade de tema e exceções de transação de fragmentos
  * **Solicitações de rede**: Corrigido o tratamento do corpo da resposta para evitar erros ao ler respostas da rede
  * **Acesso a dados**: Melhorada a inicialização e validação do cursor antes de acessar dados do banco de dados
  * **Prevenção de ANR**: Otimizadas as verificações de instância do controlador de documentos para evitar problemas de "Application Not Responding"
  * **Geral**: Melhorias internas e correções de estabilidade
* **Vivacidade facial**:
  * **Sessões**: Corrigidos erros de criação de sessão
  * **Interface**: Corrigido o tom de cor em imagens remotas na tela de Instruções

#### Atualizações

* **Configuração de build**:
  * **Regras do ProGuard**: Adicionadas as regras necessárias do ProGuard para a integração com PayFace

### caf\_sdk\@1.0.1

#### Data de lançamento

* 03-09-2026

#### Atualizações

* **Provedor de Liveness iProov atualizado**: Atualiza a versão do provedor iProov.
* **Alvo mínimo de implantação do iOS atualizado**: Atualizado para `15.0`.

#### Correções

* **Detector de documentos**
  * **Corrigidos travamentos no módulo Document Detector**: Resolvidos vários travamentos relacionados ao gerenciamento do ciclo de vida da atividade, incluindo os estados de inicialização, pausa e retomada.
  * **Corrigidos travamentos relacionados ao ciclo de vida da câmera**: Melhorado o gerenciamento de recursos da câmera e do ciclo de vida das threads para evitar travamentos durante o encerramento do SDK e as transições de estado.
  * **Corrigidos travamentos nos componentes da interface**: Resolvidos problemas de compatibilidade de tema e exceções de transação de fragmentos para garantir o comportamento adequado da interface.
  * **Corrigidos travamentos nas solicitações de rede**: Corrigido o tratamento do corpo da resposta para evitar erros ao ler respostas da rede.
  * **Corrigidos travamentos no acesso a dados**: Melhorada a inicialização e validação do cursor antes de acessar dados do banco de dados.
  * **Corrigido ANR no Document Controller**: Otimizadas as verificações de instância do controlador de documentos para evitar problemas de aplicativo não responde.
  * **Melhorias e correções internas**: Aprimoramentos adicionais de estabilidade e correções de bugs.

### caf\_sdk\@1.0.0

#### Data de lançamento

* 10-27-2025

#### Destaques

* **Primeiro lançamento do SDK Flutter**: Implementação completa em Flutter do SDK CAF para verificação de identidade
* **SDK unificado**: Pacote único contendo todos os módulos CAF (Face Liveness e Document Detector) com variantes de núcleo e interface
* **Integração Flutter-nativa**: Integração perfeita com o sistema de widgets e o gerenciamento de estado do Flutter
* **Suporte multiplataforma**: Suporte total para as plataformas Android e iOS
* **Configuração com segurança de tipos**: Classes de configuração Dart fortemente tipadas para uma melhor experiência de desenvolvimento

#### Recursos

* **Sistema de configuração de módulos**:
  * **`caf-modules-config.json`**: Arquivo de configuração na raiz do projeto para especificar quais módulos incluir
  * Módulos disponíveis:
    * `documentDetector`: Ativar/desativar o módulo Document Detector
    * `faceLiveness`: Ativar/desativar o módulo Face Liveness
    * `documentDetectorUI`: Ativar/desativar o módulo de interface do Document Detector
    * `faceLivenessUI`: Ativar/desativar o módulo de interface do Face Liveness
  * Exemplo de configuração:

    ```json
    {
      "documentDetector": true,
      "faceLiveness": true,
      "documentDetectorUI": false,
      "faceLivenessUI": false
    }
    ```
* **Recursos do SDK principal**:
  * **Classe CafSdk**: Classe principal do SDK para inicialização e configuração
  * **Fluxo de eventos**: Tratamento de eventos em tempo real por meio de streams do Dart
  * **Gerenciamento de módulos**: Execução sequencial dos módulos com ordem de apresentação configurável
  * **Tratamento de erros**: Tipos de erro abrangentes e tratamento de falhas
  * **Construtor de configuração**: Configuração com segurança de tipos usando o padrão builder
* **Módulo Face Liveness**:
  * **Módulo principal**: `CafFaceLivenessConfiguration` para controle programático
  * **Módulo de interface**: `CafFaceLivenessUIConfiguration` com telas de instrução personalizáveis
  * **Recursos**: URLs de autenticação, fixação de certificado, modo de depuração e tentativas de repetição
  * **Personalização**: Telas de instrução com imagens, títulos, descrições e etapas
* **Módulo Document Detector**:
  * **Módulo principal**: `CafDocumentDetectorConfiguration` para controle programático
  * **Módulo de interface**: `CafDocumentDetectorUIConfiguration` com personalização completa da interface
  * **Tipos de documentos**: Suporte para RG, CNH, passaporte, RNE, CTPS e muito mais
  * **Suporte a upload**: Upload de arquivos com compactação, controle de formato e limites de tamanho
  * **Configuração de proxy**: Suporte a servidores proxy com autenticação
  * **Personalização de mensagens**: Mensagens do usuário personalizáveis em todo o fluxo
* **Configuração avançada**:
  * **Temas de cores**: Personalização completa das cores da interface por meio de `CafColorConfiguration`
  * **Configurações de segurança**: Sinalizadores de desenvolvimento, modo de depuração e controles de segurança
  * **Controle de fluxo**: Captura manual, timeouts, tentativas de repetição e controles de pop-up
  * **Telas de instrução**: Telas de instrução personalizáveis para ambos os módulos

#### Implementação técnica

* **Integração com Flutter**:
  * **Canais de método**: Comunicação nativa por meio do sistema de canais de método do Flutter
  * **Eventos baseados em stream**: Tratamento de eventos em tempo real usando streams do Dart
  * **Gerenciamento de estado**: Gerenciamento adequado do ciclo de vida com `StatefulWidget` suporte
  * **Tratamento de erros**: Tratamento abrangente de erros com exceções tipadas
* **Suporte à plataforma**:
  * **Android**: Suporte completo com regras do ProGuard/R8 e configuração do repositório Maven
  * **iOS**: Integração completa com CocoaPods e módulos nativos do iOS
  * **Permissões**: Tratamento adequado de permissões para acesso à câmera e à rede
* **Desempenho**:
  * **Carregamento seletivo de módulos**: Carregue apenas os módulos ativados para otimizar o tamanho do bundle
  * **Gerenciamento de memória**: Liberação adequada de recursos e gerenciamento de memória
  * **Otimização de rede**: Comunicação de rede eficiente com mecanismos de repetição

#### Instalação e configuração

* **Instalação do pacote**: Instalação simples via `flutter pub add caf_sdk`
* **Configuração de módulos**: Seleção fácil de módulos por meio de arquivo de configuração JSON
* **Configuração da plataforma**: Instruções claras para configuração das plataformas Android e iOS
* **Gerenciamento de permissões**: Configuração abrangente de permissões para ambas as plataformas

#### Documentação

* **Exemplos completos**: Exemplos de implementação completos para uso básico e avançado
* **Guia de configuração**: Opções de configuração detalhadas para todos os módulos
* **Tratamento de eventos**: Exemplos e padrões abrangentes de tratamento de eventos
* **Referência de erros**: Documentação completa dos tipos de erro e cenários de falha

#### Alterações incompatíveis

* **Primeiro lançamento**: Este é o primeiro lançamento do SDK Flutter, portanto não há alterações incompatíveis em relação às versões anteriores.

#### Problemas conhecidos

* **Simulador do iOS**: Alguns recursos podem não funcionar corretamente no Simulador do iOS devido a limitações da câmera
* **Emulador do Android**: Recursos dependentes da câmera exigem dispositivos físicos para testes
* **Requisitos de rede**: Todos os módulos exigem conexão com a internet para funcionamento adequado


---

# 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/flutter/changelog.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.
