Guía de integración de biometría - SDK iOS
SDK Identia Flow - iOS
Descripción
El SDK Identia Flow tiene como propósito capturar una selfie y ambos lados de un documento de identidad para verificar la identidad del usuario. Está diseñado con SwiftUI.
Cómo Integrar el SDK
Descarga del SDK
- El SDK estará disponible como un archivo
.zip
. Deberás descargar y descomprimir este archivo para obtener el.framework
. - Ofrecemos dos variantes del SDK Identia Flow, una con Bitcode habilitado y otra sin Bitcode. Elige la opción que mejor se ajuste a las necesidades de tu proyecto.
Configuración del SDK
Con Bitcode Habilitado:
Este paquete incluye Bitcode, lo cual es recomendable si deseas que Apple recompile tu aplicación para futuros dispositivos sin necesidad de subir una nueva versión.
-
Descargar SDK en xcode 14.2 con Bitcode
MD5:
7e6ea6c87f91dda8adacf82ac7be015d
-
Descargar SDK en xcode 15.4 con Bitcode
MD5:
a2b6de6638f6e848ac8b9aaf606adf78
Sin Bitcode:
Elige esta opción si prefieres una compilación más rápida de tu aplicación durante el desarrollo o si no necesitas la compatibilidad con Bitcode.
-
Descargar SDK en xcode 14.2 sin Bitcode
MD5:
eb78b1ea21060dfee332b56cd45b4baa
-
Descargar SDK en xcode 15.4 sin Bitcode
MD5:
57fe0b9a82bddfdaaa6af8bf9a1385d
Importar en Xcode
- Una vez que tengas el archivo
.framework
descomprimido, abre tu proyecto en Xcode. - Arrastra el archivo
.framework
al área del navegador del proyecto, preferiblemente dentro del grupo "Frameworks". - Asegúrate de marcar la opción "Copy items if needed".
Configuración del Framework
- Selecciona tu proyecto en el navegador del proyecto.
- Selecciona tu target y ve a la pestaña "General".
- Desplázate hacia abajo hasta la sección "Frameworks, Libraries, and Embedded Content".
- Encuentra
identiaFlow.framework
en la lista y cambia la opción "Do Not Embed" a "Embed & Sign".
Solicitar permisos de cámara
- Asegúrate de que tu
Info.plist
para solicitar acceso a la cámara del dispositivo y geolocalización.
NSLocationWhenInUseUsageDescription
:
- Haz clic con el botón derecho en cualquier espacio en blanco dentro del editor de
Info.plist
. - Selecciona "Add Row".
- Introduce
NSLocationWhenInUseUsageDescription
como la clave. - En el tipo, selecciona "String".
- En el valor, introduce un mensaje descriptivo que le dirá al usuario por qué tu aplicación necesita acceso a su ubicación cuando está en uso. Por ejemplo: "Necesitamos acceder a tu ubicación para mostrarte lugares cercanos."
NSCameraUsageDescription
:
- De la misma manera, haz clic con el botón derecho y selecciona "Add Row".
- Introduce
NSCameraUsageDescription
como la clave. - En el tipo, selecciona "String".
- En el valor, introduce un mensaje descriptivo que le dirá al usuario por qué tu aplicación necesita acceso a su cámara. Por ejemplo: "Necesitamos acceso a tu cámara para que puedas tomar fotos dentro de la app."
Tu archivo Info.plist
debería tener ahora algo similar a:
<key>NSLocationWhenInUseUsageDescription</key>
<string>Necesitamos acceder a tu ubicación para ...</string>
<key>NSCameraUsageDescription</key>
<string>Necesitamos acceso a tu cámara para que puedas ...</string>
Uso del SDK
IdentiaFlowView
Este componente es la interfaz principal que deberás implementar en tu aplicación:
IdentiaFlowView(
idSession:"xxxxxxxxx.xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx",
endPoint: "https://apifacialdev.identia.pe/") { jsonString in
// Aquí puedes manejar el jsonString que se retornó desde el sdk
print(jsonString)
}
Parámetros:
-
idSession
: Una cadena que identifica la sesión actual. Debe seguir el formato de dos cadenas hexadecimales de longitud 64 separadas por un punto. -
endPoint
: URL del servidor. Debe pertenecer al dominio "identia.pe".
El SDK de Identia Flow retornará respuestas que tu aplicación debe manejar adecuadamente para proporcionar retroalimentación al usuario
Personalización gráfica
Para incorporar una personalización de la interfaz en tu implementación, utiliza el parámetro style
en el constructor de IdentiaFlowView
. El PERSONALIZATION_ID
se obtiene directamente del Backoffice. Simplemente asigna este ID al parametro style
de tu personalización a este parámetro, como se muestra en el siguiente ejemplo:
IdentiaFlowView(
idSession:"xxxxxxxxx.xxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx",
endPoint: "https://apifacialdev.identia.pe/",
style: PERSONALIZATION_ID) { jsonString in
// Aquí puedes manejar el jsonString que se retornó desde el sdk
print(jsonString)
}
Respuestas Exitosas
Cuando el proceso concluye de manera exitosa, recibirás la siguiente estructura:
{
"result": true,
"message": "El proceso ha concluido satisfactoriamente",
"code": 200,
"data": {
"selfie": "BASE64_DATA_FOR_SELFIE",
"document": {
"A": "BASE64_DATA_FOR_SIDE_A",
"B": "BASE64_DATA_FOR_SIDE_B"
}
}
}
Con esta respuesta, puedes extraer y procesar la selfie y la imagenes del documento según sea necesario en tu aplicación.
Errores por verificación negativa
{
"result": false,
"message": "Proceso de verificación concluido, sin respuesta satisfactoria",
"code": 300,
"data": null
}
Errores por falta de permisos
Si el usuario no otorga permisos para acceder a la cámara, recibirás la siguiente respuesta:
{
"result": false,
"message": "Por favor, otorga permisos de cámara para continuar.",
"code": 401,
"data": null
}
Es importante informar al usuario sobre la necesidad de otorgar estos permisos para continuar con el proceso.
Errores por timeout
Si el usuario excede el tiempo máximo permitido para capturar una selfie o el DNI, recibirás esta respuesta:
{
"result": false,
"message": "Se agotó el tiempo de espera. Por favor, intenta de nuevo más tarde.",
"code": 408,
"data": null
}
Debes informar al usuario sobre el tiempo agotado y considerar darle opciones para reiniciar el proceso o intentarlo más tarde.