> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/produtos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/ios-sdk/modulos/subida-de-ficheros-y-gestion-de-qr.md).

# Upload de arquivos e gerenciamento de QR

Este componente precisa de uma versão mínima do iOS14

## Introdução

O envio de arquivos e a leitura e geração de códigos QR são realizados com o ***Capture Component***.

Este componente permite o envio de documentos tirando uma foto com a câmera do dispositivo ou a partir da galeria. FileUploader, QR Reader e QR Generator usam o Widget KMP **FPHICaptureWidget** (não há UI nativa própria). Suas principais funcionalidades são:

* Envio de documentos por câmera ou galeria.
* Leitura de códigos QR.
* Geração de códigos QR.

Na seção de [Inicialização](/docs.facephi-pt-br/produtos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/ios-sdk/inicializacion.md) são detalhados os passos necessários para a integração básica do SDK. Nesta seção, é adicionada a informação para o lançamento deste componente.

***

## Dependências

Para evitar conflitos e problemas de compatibilidade, caso se queira instalar o componente em um projeto que contenha uma versão antiga das bibliotecas da Facephi (Widgets), elas deverão ser removidas completamente antes da instalação dos componentes da **SDKMobile**.

### **CocoaPods**

* Atualmente, as bibliotecas da Facephi são distribuídas remotamente por meio de diferentes gerenciadores de dependências, neste caso o CocoaPods. As dependências **obrigatórias** que deverão ter sido instaladas previamente (adicionando-as no arquivo Podfile do projeto) são:

```swift
pod 'FPHISDKMainComponent', '~> $VERSION'
```

* Para instalar o componente de Captura, deverá ser incluída a seguinte entrada no Podfile do aplicativo:

```swift
pod 'FPHISDKCaptureComponent', '~> $VERSION'
```

### **SPM**

* As dependências obrigatórias que deverão ter sido instaladas previamente são:

```swift
//HTTPS
https://github.com/facephi-clienters/SDK-SdkPackage-SPM.git
//SSH
git@github.com:facephi-clienters/SDK-SdkPackage-SPM.git
```

* Para instalar o componente de Selphid, deverá ser incluído nos módulos do projeto:

<pre class="language-swift"><code class="lang-swift"><strong>//HTTPS
</strong>https://github.com/facephi-clienters/SDK-CapturePackage-SPM.git
//SSH
git@github.com:facephi-clienters/SDK-CapturePackage-SPM.git
</code></pre>

***

## Controladores disponíveis <a href="#id-3-controladores-disponibles" id="id-3-controladores-disponibles"></a>

| **Controlador**        | **Descrição**                            |
| ---------------------- | ---------------------------------------- |
| FileUploaderController | Controlador para a captura de documentos |
| QrReaderController     | Controlador para a captura de QRs        |
| QrGeneratorController  | Controlador para a geração de QRs        |

***

## Recebimento de erros <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

Os erros serão retornados como um objeto 'CaptureError'.

Lista de erros:

* CAP\_ACTIVITY\_RESULT\_MSG\_ERROR: O resultado retornado pela atividade está incorreto ou não contém as informações necessárias para continuar.
* CAP\_APPLICATION\_CONTEXT\_ERROR: O contexto de aplicação necessário é nulo ou inválido, impedindo inicializar corretamente o módulo de captura.
* CAP\_CAMERA\_ERROR: Ocorreu um erro interno relacionado à câmera do dispositivo (falha de abertura, inicialização ou captura).
* CAP\_CAMERA\_PERMISSION\_DENIED: O usuário negou as permissões necessárias para acessar a câmera.
* CAP\_CANCEL\_BY\_USER: O usuário cancelou manualmente o processo de captura.
* CAP\_CANCEL\_LAUNCH: O processo foi cancelado de forma geral pelo SDK ou por uma ação externa.
* CAP\_COMPONENT\_LICENSE\_ERROR: A licença do componente não é válida, expirou ou não corresponde à configuração necessária.
* CAP\_EMPTY\_LICENSE: A cadeia de licença está vazia ou não foi fornecida.
* CAP\_FETCH\_DATA\_ERROR: Ocorreu um erro ao obter ou processar os dados necessários para executar o fluxo. *(Inclui informações adicionais no campo `error`.)*
* CAP\_FLOW\_ERROR: Ocorreu um erro interno durante a execução do fluxo de captura. *(Inclui informações adicionais no campo `error`.)*
* CAP\_INITIALIZATION\_ERROR: Erro ao inicializar os componentes necessários do SDK. *(Inclui informações detalhadas no campo `error`.)*
* CAP\_FILE\_UPLOADER\_CAPTURE\_ERROR: Erro durante o processo de envio dos arquivos gerados na captura.
* CAP\_IMAGE\_TOO\_LARGE: A imagem selecionada na galeria excede o tamanho máximo configurado em `maxGalleryImageSizeKb`.
* CAP\_MANAGER\_NOT\_INITIALIZED: Os managers necessários para executar o processo não foram inicializados corretamente.
* CAP\_NO\_DATA\_ERROR: Os dados de entrada necessários são nulos, inexistentes ou insuficientes para continuar o processo.
* CAP\_OPERATION\_NOT\_CREATED: Não foi possível criar ou recuperar uma operação ativa necessária para continuar. *(Inclui informações detalhadas no campo `error`.)*
* CAP\_QR\_CAPTURE\_ERROR: Erro durante a captura ou leitura do código QR.
* CAP\_QR\_GENERATION\_ERROR: Erro ao gerar o código QR solicitado.
* CAP\_TIMEOUT: O tempo máximo permitido foi atingido em alguma das fases do processo.
* CAP\_FLOW\_VIDEO\_RECORDING\_ERROR: Erro durante a gravação de vídeo dentro do fluxo estabelecido.
* CAP\_FLOW\_TRACKING\_ERROR: Erro ao realizar o tracking necessário para concluir o fluxo de captura.

## Configuração da captura de documentos <a href="#id-7-configuracion-de-la-captura-de-documentos" id="id-7-configuracion-de-la-captura-de-documentos"></a>

Em `FileUploaderConfigurationData`, junto com parâmetros como `allowGallery` e `maxScannedDocs`, é possível ajustar o comportamento da seleção na galeria:

* `onlyGalleryMode`: Abre o fluxo diretamente no modo galeria, sem mostrar a captura com câmera. Por padrão `true`.
* `maxGalleryImageSizeKb`: Tamanho máximo permitido para imagens selecionadas na galeria, em KB. Por padrão `2048`. Se uma imagem exceder esse limite, o componente retorna `CAP_IMAGE_TOO_LARGE`.
