> 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/captura-de-nfc.md).

# Captura de NFC

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

### Introducción <a href="#id-1-introduccion" id="id-1-introduccion"></a>

El *Componente* tratado en el documento actual recibe el nombre de ***NFC Component***. Éste se encarga de realizar la lectura de nfc de documentos de identidad y pasaportes. Sus principales funcionalidades son las siguientes:

* Gestión interna del sensor de NFC.
* Gestión de permisos.
* Análisis de documento.
* Análisis del progreso.
* Asistente en los procesos de lectura.
* Devolución de toda la información posible a leer
* Devolución de imágenes cuando estén disponible para su lectura

## Dependencias <a href="#id-21-dependencias-requeridas-para-la-integracion" id="id-21-dependencias-requeridas-para-la-integracion"></a>

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**

* Las dependencias obligatorias que deberán haberse instalado previamente (añadiéndolas en el fichero Podfile del proyecto) son:

```
pod 'FPHISDKMainComponent', '~> $SDK_VERSION'
```

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

```
pod 'FPHISDKNFCComponent', '~> $NFC_VERSION'
```

### **SPM**

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

```
//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 NFC deberá incluirse en los módulos del proyecto:

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

## Controladores disponibles <a href="#id-4-controladores-disponibles" id="id-4-controladores-disponibles"></a>

| **Controlador** | **Descripción**                      |
| --------------- | ------------------------------------ |
| FNFCController  | Controlador principal de lectura NFC |

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

En la parte del error, **internamente** disponemos de la clase NFCPassportReaderError. Este enumerado contiene muchos errores específicos que no aportan información útil si son devueltos al integrador, por lo que son transformados a un tipo más simple (**ErrorType**):

* NFC\_CANCEL\_BY\_USER: El usuario ha cancelado el proceso.
* NFC\_COMPONENT\_LICENSE\_ERROR: La licencia del componente no es correcta.
* NFC\_EMPTY\_LICENSE: El String de licencia está vacío.
* NFC\_EXTRACT\_DATA\_ERROR: Error en los datos extraídos.
* NFC\_INITIALIZATION\_ERROR: Error de inicialización.
* NFC\_LAST\_COMMAND\_EXPECTED: Error en el comando de finalización
* NFC\_ERROR: Error general
* NFC\_ERROR\_DATA: Error en los datos de entrada
* NFC\_ERROR\_DISABLED: NFC deshabilitado
* NFC\_ERROR\_ILLEGAL\_ARGUMENT: NFC con un tag incorrecto
* NFC\_ERROR\_IO: Error de entrada/salida
* NFC\_ERROR\_NOT\_SUPPORTED: NFC no soportado
* NFC\_ERROR\_TAG\_LOST: Conexión perdida
* NFC\_OPERATION\_NOT\_CREATED: No hay ninguna operación en curso.
* NFC\_TIMEOUT: Timeout en el proceso.

**NOTA**: `NFC_INVALID_MRZ_KEY` *implica que la conexión no se ha podido establecer por culpa de que los datos de entrada de la configuración (documentNumber, birthDate, expiryDate) no son correctos. Todos los lanzamientos de lectura para ese NFC fallarán mientras no se inicialice un NFCController nuevo con los datos correctos.*
