> 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.md).

# Guia de Instalação

{% hint style="warning" %}

## Este guia abrange a versão 7.0.0 e superiores. Para versões anteriores à 7.0.0, consulte a [documentação legada](/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-5.md).

{% endhint %}

### Requisitos

Antes de integrar, verifique se seu ambiente atende ao mínimo **Xcode**, **Swift**, e **iOS** versões para a versão do CafSDK que você usa. Confira [**GitHub Releases**](https://github.com/combateafraude/caf-ios-sdk).

Você precisa de:

* **CafSDK** e **CafFaceLiveness** vinculado ao seu target
* Opcional **provedor** pacotes (por exemplo **iProov**, **FaceTec 2D**, **Fortface**) conforme acordado com a CAF para o seu produto — corresponda seus **`Package.swift`** ou **CocoaPods** subspecs aos provedores que seu backend espera.

{% hint style="warning" %}
Oferecemos suporte ao CocoaPods; no entanto, observe que ele será descontinuado até o fim de 2026. Recomendamos fortemente usar o Swift Package Manager em vez disso.

<https://blog.cocoapods.org/CocoaPods-Specs-Repo/>
{% endhint %}

| Requisito                    | Versão |
| ---------------------------- | ------ |
| Target de implantação do iOS | 15.0+  |
| Xcode                        | 26     |

***

### Permissões

Adicione **câmera** texto de uso para que o sistema possa mostrar o prompt de permissão quando o Face Liveness usar a câmera.

**Info.plist**

```xml
<key>NSCameraUsageDescription</key>
<string>Precisamos de acesso à câmera para verificação facial.</string>
```

Aplicativos iOS padrão podem usar a rede sem uma entrada extra no manifesto; configure **App Transport Security** somente se seu ambiente exigir exceções (veja a documentação da Apple).

***

### Adicionando dependências

Em **`Package.swift`**, adicione o pacote (ajuste o intervalo de versões para corresponder à sua release):

{% tabs %}
{% tab title="Swift Package Manager" %}
{% code title="Package.swift" overflow="wrap" expandable="true" %}

```kt
dependencies: [
    .package(url: "https://github.com/combateafraude/caf-ios-sdk.git", from: "7.0.0")
]

.target(
    name: "YourApp",
    dependencies: [
        .product(name: "CafSDK", package: "caf-ios-sdk"),
        .product(name: "CafFaceLiveness", package: "caf-ios-sdk"),
        // Provedores opcionais, ex. IproovProvider, FaceTec2DProvider, FortfaceProvider
    ]
)
```

{% endcode %}
{% endtab %}

{% tab title="CocoaPods" %}
{% code title="Podfile" overflow="wrap" expandable="true" %}

```ruby
platform :ios, '15.0'

pod 'CafSDKiOS'
# Exemplos de subspecs: CafSDKiOS/CafFaceLiveness, CafSDKiOS/IproovProvider, …
```

{% endcode %}
{% endtab %}
{% endtabs %}

***

### Configurando a sessão

Inicialize **Certta** quando você tiver um **token móvel** (JWT) válido e **ID do usuário** — por exemplo, após o login. Chame **`Certta.shared.configure(configuration:)`** no código do seu app (normalmente no mesmo lugar em que você estabelece a sessão do usuário, não necessariamente `application(_:didFinishLaunchingWithOptions:)` a menos que isso se encaixe no seu fluxo).

```swift
Certta.shared.configure(
    configuration: CerttaConfiguration(
        mobileToken: "seu-jwt",
        userID: "id-do-usuário",
        environment: .prod,
        securityEnabled: true
    )
)
```

* Se **token móvel** ou **ID do usuário** estiver vazio, a sessão não é atualizada e um aviso é registrado; chame **`configure`** novamente com ambos os valores definidos.
* **`environment`**: deve corresponder ao ambiente CAF usado pelo seu backend (por exemplo **`.prod`**, **`.dev`** **`.beta`**).
* **`securityEnabled`**: quando **`true`**, as verificações de jailbreak/instrumentação podem bloquear fluxos (veja a orientação do produto CAF).

#### Parâmetros de CerttaConfiguration

| Parâmetro             | Tipo             | Descrição                                                                               |
| --------------------- | ---------------- | --------------------------------------------------------------------------------------- |
| **`mobileToken`**     | `String`         | CAF **JWT móvel** do seu backend.                                                       |
| **`userID`**          | `String`         | Identificador do usuário final.                                                         |
| **`environment`**     | `CafEnvironment` | Ambiente de backend da CAF (por exemplo **`.prod`**).                                   |
| **`securityEnabled`** | `Bool`           | Quando **`true`**, ativa verificações de segurança quando aplicável. Padrão **`true`**. |

#### Token móvel (JWT)

Seu backend deve obter e passar o token móvel de acordo com **as regras da plataforma CAF**. Use sua **documentação de integração/backend da CAF** para saber como gerar e atualizar o JWT; não incorpore segredos no cliente.

***

### Atualizações de configuração em tempo de execução

**`userID`** e **`mobileToken`** pode ser atualizado após o inicial **`configure`** sem repetir a struct completa. Chame isso do seu coordenador, controller de visualização ou de onde quer que você trate login, logout ou atualização de token:

```swift
Certta.shared.updateUserId("new-user-id")
Certta.shared.updateMobileToken("new-jwt-token")
```

Use isso quando o usuário fizer login novamente ou quando seu backend emitir um **JWT atualizado**, para que o SDK Certta permaneça alinhado com a sessão ativa.

#### Encerrar sessão

```swift
Certta.shared.clearSession()
```

Chame no logout. Os fluxos não serão executados até **`configure`** funcionar novamente com credenciais válidas.

***

### Cores e temas

A interface de Face Liveness pode usar uma paleta personalizada quando **`useFaceLivenessUi`** estiver **`true`** em **`LivenessConfiguration`**. Forneça as cores como **strings hexadecimais** (por exemplo **`#RRGGBB`**).

1. Após um sucesso **`configure`**, defina as cores da sessão: **`Certta.shared.setColorConfiguration(_:)`**.
2. Defina **`useFaceLivenessUi: true`** para que essas cores sejam aplicadas à interface Face Liveness integrada da Certta.

**Modo escuro / claro:** construa **`CafColorConfiguration`** usando **`UITraitCollection.current.userInterfaceStyle`** se você precisar de paletas diferentes.

```swift
Certta.shared.setColorConfiguration(
    CafColorConfiguration(
        primaryColor: "#FF0000",
        secondaryColor: "#00FF00",
        contentColor: "#000000",
        backgroundColor: "#FFFFFF",
        mediumColor: "#D1D1D1",
        dialogBackgroundColor: "#FFFFFF",
        dialogBorderColor: "#0C395E"
    )
)
```

#### Parâmetros de CafColorConfiguration

| Parâmetro                   | Descrição                               |
| --------------------------- | --------------------------------------- |
| **`primaryColor`**          | Cor principal de destaque (string hex). |
| **`secondaryColor`**        | Cor secundária de destaque.             |
| **`contentColor`**          | Primeiro plano / conteúdo.              |
| **`backgroundColor`**       | Plano de fundo principal.               |
| **`mediumColor`**           | Ênfase média / neutra.                  |
| **`dialogBackgroundColor`** | Plano de fundo do diálogo.              |
| **`dialogBorderColor`**     | Borda do diálogo.                       |

Todos os parâmetros são opcionais no inicializador; defina apenas os que seu tema precisar.

***

### Resposta assinada (sucesso)

A string em **`didFinish(signedResponse:)`** é o resultado assinado do módulo. Sua documentação de integração/backend da CAF define como validá-lo, decodificá-lo e armazená-lo. **Não** registre o token completo em builds de produção.

***

### Próximas etapas:

{% content-ref url="/pages/1d6e9afb3980a9bc03e88b9e91bede51b0c5d6b1" %}
[Face Liveness](/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-1.md)
{% endcontent-ref %}

{% content-ref url="/pages/9308a33636432cb6b029285e9a24279546c887c9" %}
[Document Detector](/caf-sdk/caf-sdk-pt-br/ios/getting-started-with-the-sdk-2.md)
{% endcontent-ref %}

### Notas da versão

Consulte [**GitHub Releases**](https://github.com/combateafraude/caf-ios-sdk) para ver versões, alterações que quebram compatibilidade e Xcode/iOS mínimos.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
