> 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/productos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/ios-sdk/modulos/subida-de-ficheros-y-gestion-de-qr.md).

# Subida de ficheros y gestión de QR

Este componente necesita una versión mínima de iOS14

## Introducción

La subida de ficheros y la lectura y generación de códigos QR se realizan con el ***Capture Component***.

Este componente permite la subida de documentos realizando una foto con la cámara del dispositivo o desde la galería. FileUploader, QR Reader y QR Generator usan el widget KMP **FPHICaptureWidget** (no hay UI nativa propia). Sus principales funcionalidades son:

* Subida de documentos mediante cámara o galería.
* Lectura de códigos QR.
* Generación de códigos QR.

En el apartado de [Inicialización](/productos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/ios-sdk/inicializacion.md) se detallan los pasos necesarios para la integración básica del SDK. En esta sección se añade la información para el lanzamiento de este componente.

***

## Dependencias

Para evitar conflictos y problemas de compatibilidad, en caso de querer instalar el componente en un proyecto que contenga una versión antigua de las librerías de Facephi (Widgets), éstos deberán eliminarse por completo antes de la instalación de los componentes de la **SDKMobile**.

### **Cocoapods**

* Actualmente las librerías de Facephi se distribuyen de forma remota a través de diferentes gestores de dependencias, en este caso Cocoapods. Las dependencias **obligatorias** que deberán haberse instalado previamente (añadiéndolas en el fichero Podfile del proyecto) son:

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

* Para instalar el componente de Captura deberá incluirse la siguiente entrada en el Podfile de la aplicación:

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

### **SPM**

* Las dependencias obligatorias que deberán haberse instalado previamente son:

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

* Para instalar el componente de Selphid deberá incluirse en los módulos del proyecto:

<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 disponibles <a href="#id-3-controladores-disponibles" id="id-3-controladores-disponibles"></a>

| **Controlador**        | **Descripción**                           |
| ---------------------- | ----------------------------------------- |
| FileUploaderController | Controlador para la captura de documentos |
| QrReaderController     | Controlador para la captura de QRs        |
| QrGeneratorController  | Controlador para la generación de QRs     |

***

## Recepción de errores <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

Los errores se devolverán como un objeto 'CaptureError'.

Listado de errores:

* CAP\_ACTIVITY\_RESULT\_MSG\_ERROR: El resultado devuelto por la actividad es incorrecto o no contiene la información necesaria para continuar.
* CAP\_APPLICATION\_CONTEXT\_ERROR: El contexto de aplicación requerido es nulo o no válido, impidiendo inicializar correctamente el módulo de captura.
* CAP\_CAMERA\_ERROR: Ha ocurrido un error interno relacionado con la cámara del dispositivo (fallo de apertura, inicialización o captura).
* CAP\_CAMERA\_PERMISSION\_DENIED: El usuario ha denegado los permisos necesarios para acceder a la cámara.
* CAP\_CANCEL\_BY\_USER: El usuario ha cancelado manualmente el proceso de captura.
* CAP\_CANCEL\_LAUNCH: El proceso ha sido cancelado de forma general por el SDK o por una acción externa.
* CAP\_COMPONENT\_LICENSE\_ERROR: La licencia del componente no es válida, ha expirado o no coincide con la configuración requerida.
* CAP\_EMPTY\_LICENSE: La cadena de licencia está vacía o no se ha proporcionado.
* CAP\_FETCH\_DATA\_ERROR: Se ha producido un error al obtener o procesar los datos necesarios para ejecutar el flujo. *(Incluye información adicional en el campo `error`.)*
* CAP\_FLOW\_ERROR: Se ha producido un error interno durante la ejecución del flujo de captura. *(Incluye información adicional en el campo `error`.)*
* CAP\_INITIALIZATION\_ERROR: Error al inicializar los componentes necesarios del SDK. *(Incluye información detallada en el campo `error`.)*
* CAP\_FILE\_UPLOADER\_CAPTURE\_ERROR: Error durante el proceso de subida de los archivos generados en la captura.
* CAP\_IMAGE\_TOO\_LARGE: La imagen seleccionada desde galería supera el tamaño máximo configurado en `maxGalleryImageSizeKb`.
* CAP\_MANAGER\_NOT\_INITIALIZED: Los managers necesarios para ejecutar el proceso no han sido inicializados correctamente.
* CAP\_NO\_DATA\_ERROR: Los datos de entrada requeridos son nulos, inexistentes o insuficientes para continuar el proceso.
* CAP\_OPERATION\_NOT\_CREATED: No se ha podido crear o recuperar una operación activa necesaria para continuar. *(Incluye información detallada en el campo `error`.)*
* CAP\_QR\_CAPTURE\_ERROR: Error durante la captura o lectura del código QR.
* CAP\_QR\_GENERATION\_ERROR: Error al generar el código QR solicitado.
* CAP\_TIMEOUT: Se ha alcanzado el tiempo máximo permitido en alguna de las fases del proceso.
* CAP\_FLOW\_VIDEO\_RECORDING\_ERROR: Error durante la grabación de vídeo dentro del flujo establecido.
* CAP\_FLOW\_TRACKING\_ERROR: Error al realizar el tracking necesario para completar el flujo de captura.

## Configuración de la captura de documentos <a href="#id-7-configuracion-de-la-captura-de-documentos" id="id-7-configuracion-de-la-captura-de-documentos"></a>

En `FileUploaderConfigurationData`, junto a parámetros como `allowGallery` y `maxScannedDocs`, se puede ajustar el comportamiento de la selección desde galería:

* `onlyGalleryMode`: Abre el flujo directamente en modo galería, sin mostrar la captura con cámara. Por defecto `true`.
* `maxGalleryImageSizeKb`: Tamaño máximo permitido para imágenes seleccionadas desde galería, en KB. Por defecto `2048`. Si una imagen supera este límite, el componente devuelve `CAP_IMAGE_TOO_LARGE`.
