AKFaceTec
9.7.51 🚀 Latest
The AKFaceTec library allows you to secure the user's identity through facial recognition and capture the user's ID card using FaceTec technology. This library is optional and depends on your use case.
Contact support to obtain the step for registering in the AKCore
class.
Quick start
Add AKFaceTecSwift
as a dependency
in your Package Dependencies
app.
https://github.com/Autentikar/facetec-spm
This dependency is equivalent to the AKFaceSwift
library. Therefore, if you have the AKFaceSwift
library as a dependency, please remove it from your Package Dependencies
and replace it with AKFaceTecSwift
. The implementation is the same, but the method names have changed.
Dependencies
AKFaceTecSwift
depends on AKCoreSwift
so you need to add AKCoreSwift
as a dependency in your Package Dependecies
.
AKFaceTecSwift
library depends on FaceTecSDK
library current version is 9.7.51
. You don't need to add it as a dependency.Set up
Initialize SDK
Before continuing, you can set up the SDK with the following code, we recommend that you do this in the AppDelegate
class:
import AKCoreSwift
import AKFaceTecSwift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
.....
AKCore.register(for: AKFaceTec.getProtocol(step: .yourStepProvidedBySupport))
.....
return true
}
This will register AKFaceTec
in the AKCore
class. This controller will be launched to capture the user's face or ID card. It is mandatory to register this controller in the AKCore
class.
Custom Theme
You can to call FaceTecCustomization()
functions for setting
colors of FaceTec. For more information visit page. And set the customization in AKFaceTec.faceTecCustomization or AKFaceTec.faceTecLowLightCustomization
property.
For custom loading screen use AKFaceTecCustomization()
function and call to AKFaceTec.setCustomization(customization: custom)
. To custom view in FaceTec invoke the following code:
import AKFaceTecSwift
func autentikarCustomUI() {
let faceCustomization = AKFaceTecCustomization()
faceCustomization.backgroundColor = UIColor.your_background_color
faceCustomization.showBackgroundImage = true | false
faceCustomization.backgroundImage = UIImage(named: "your_background_image")
faceCustomization.showLogo = true | false
faceCustomization.logo = UIImage(named: "your_logo")
faceCustomization.activityViewColor = UIColor.your_activity_view_color
faceCustomization.textColor = UIColor.your_text_color
faceCustomization.customFont = UIFont(name: "your_custom_font", size: 18)
faceCustomization.bundleForFaceTecString = Bundle(identifier: "your_identifier")!
faceCustomization.bundleForLocalizableString = Bundle(identifier: "your_identifier")!
AKFaceTec.setCustomization(customization: faceCustomization)
// If you want to customize the FaceTec screen add this code
let faceTecCustomization = FaceTecCustomization()
let faceTecLowLightCustomization = FaceTecCustomization()
.....
AKFaceTec.faceTecCustomization = faceTecCustomization
AKFaceTec.faceTecLowLightCustomization = faceTecLowLightCustomization
}
FaceTec Strings
If you want to FaceTec strings in your language, you can use the bundleForFaceTecString
property. This property is a Bundle
type and you must add a Localizable.strings
file in your project. This strings properties are:
"FaceTec_accessibility_cancel_button" = "Cancelar";
"FaceTec_accessibility_torch_button" = "Interruptor de iluminación";
"FaceTec_accessibility_tap_guidance" = "Toque dos veces cualquier parte de la pantalla para ver indicaciones sobre cómo alinear el rostro.";
"FaceTec_accessibility_feedback_move_phone_away" = "Su rostro está demasiado cerca";
"FaceTec_accessibility_feedback_move_phone_closer" = "Su rostro está demasiado lejos";
"FaceTec_accessibility_feedback_face_too_far_left" = "Su rostro está demasiado a la izquierda";
"FaceTec_accessibility_feedback_face_too_far_right" = "Su rostro está demasiado a la derecha";
"FaceTec_accessibility_feedback_face_too_low" = "Su rostro está demasiado abajo";
"FaceTec_accessibility_feedback_face_too_high" = "Su rostro está demasiado arriba";
"FaceTec_accessibility_feedback_face_rotated_too_far_left" = "Su rostro gira demasiado a la izquierda";
"FaceTec_accessibility_feedback_face_rotated_too_far_right" = "Su rostro gira demasiado a la derecha";
"FaceTec_accessibility_feedback_face_pointing_too_far_left" = "Su rostro está demasiado inclinado hacia la izquierda";
"FaceTec_accessibility_feedback_face_pointing_too_far_right" = "Su rostro está demasiado inclinado hacia la derecha";
"FaceTec_accessibility_feedback_face_not_on_camera" = "El rostro no se ve en la cámara o está demasiado lejos";
"FaceTec_accessibility_feedback_hold_device_to_eye_level" = "Mantenga el dispositivo a la altura de los ojos";
"FaceTec_action_ok" = "ACEPTAR";
"FaceTec_action_im_ready" = "ESTOY LISTO";
"FaceTec_action_try_again" = "VOLVER A INTENTARLO";
"FaceTec_action_continue" = "CONTINUAR";
"FaceTec_action_take_photo" = "TOMAR FOTO";
"FaceTec_action_retake_photo" = "VOLVER";
"FaceTec_action_accept_photo" = "ACEPTAR";
"FaceTec_action_confirm" = "CONFIRMAR INFORMACIÓN";
"FaceTec_action_scan_nfc" = "VOLVER A ESCANEAR";
"FaceTec_action_scan_nfc_card" = "VOLVER A ESCANEAR";
"FaceTec_action_skip_nfc" = "OMITIR ESTE PASO";
"FaceTec_camera_permission_header" = "Habilite la cámara";
"FaceTec_camera_permission_message_enroll" = "Por favor, toque el botón de abajo para activar su cámara de selfis.";
"FaceTec_camera_permission_message_auth" = "La cámara está deshabilitada. Toque a continuación para editar su configuración.";
"FaceTec_camera_permission_enable_camera" = "HABILITAR LA CÁMARA";
"FaceTec_camera_permission_launch_settings" = "ABRIR LA CONFIGURACIÓN";
"FaceTec_feedback_center_face" = "Centre su rostro";
"FaceTec_feedback_face_not_found" = "Encuadre su rostro";
"FaceTec_feedback_face_not_looking_straight_ahead" = "Mire hacia el frente";
"FaceTec_feedback_face_not_upright" = "Mantenga la cabeza recta";
"FaceTec_feedback_hold_steady" = "Quédese quieto";
"FaceTec_feedback_move_phone_away" = "Apártese";
"FaceTec_feedback_move_phone_closer" = "Acérquese";
"FaceTec_feedback_move_phone_to_eye_level" = "Coloque la cámara a la altura de los ojos";
"FaceTec_feedback_use_even_lighting" = "Ilumine el rostro de forma más uniforme";
"FaceTec_idscan_type_selection_header" = "Prepárese para escanear\nsu identificación";
"FaceTec_idscan_capture_tap_to_focus_message" = "Toque la pantalla para enfocar";
"FaceTec_idscan_capture_hold_steady_message" = "Quédese quieto";
"FaceTec_idscan_capture_id_front_instruction_message" = "Anverso de su identificación";
"FaceTec_idscan_capture_id_back_instruction_message" = "Reverso de su identificación";
"FaceTec_idscan_review_id_front_instruction_message" = "Verifique sea nítida y legible";
"FaceTec_idscan_review_id_back_instruction_message" = "Verifique sea nítida y legible";
"FaceTec_idscan_ocr_confirmation_main_header" = "Revisar y confirmar";
"FaceTec_idscan_ocr_confirmation_scroll_message" = "Desplácese hacia abajo";
"FaceTec_idscan_nfc_status_disabled_message" = "Habilite el NFC\nen la configuración de su dispositivo\npara continuar";
"FaceTec_idscan_nfc_status_ready_message" = "Prepárese para escanear\nel chip de su pasaporte electrónico";
"FaceTec_idscan_nfc_card_status_ready_message" = "Prepárese para escanear\nel chip de su identificación";
"FaceTec_idscan_nfc_status_starting_message" = "Acerque el teléfono a la parte\nposterior del ePasaporte\npara escanear el chip NFC";
"FaceTec_idscan_nfc_card_status_starting_message" = "Acerque el teléfono a su identificación\npara escanear el chip NFC";
"FaceTec_idscan_nfc_status_scanning_message" = "Manténgalo quieto,\nescaneando el chip NFC";
"FaceTec_idscan_nfc_status_weak_connection_message" = "Intentemos\notro escaneo";
"FaceTec_idscan_nfc_status_finished_with_success_message" = "Escaneo de documentos\ncompletado";
"FaceTec_idscan_nfc_status_finished_with_error_message" = "No se puede leer\nel chip del pasaporte electrónico";
"FaceTec_idscan_nfc_card_status_finished_with_error_message" = "No se puede leer\nel chip de la identificación";
"FaceTec_idscan_nfc_status_skipped_message" = "Escaneo NFC\nomitido";
"FaceTec_idscan_additional_review_message" = "Se requiere\nuna verificación adicional";
"FaceTec_idscan_feedback_flip_id_to_back_message" = "Reverso de su identificación";
"FaceTec_initializing_camera" = "Protegiendo la conexión";
"FaceTec_instructions_header_ready_1" = "Prepárese para";
"FaceTec_instructions_header_ready_2" = "su videoselfie";
"FaceTec_instructions_message_ready_1" = "Encuadre su rostro en el óvalo";
"FaceTec_instructions_message_ready_2" = "Presione Estoy listo y acérquese";
"FaceTec_presession_frame_your_face" = "Encuadre su rostro en el óvalo";
"FaceTec_presession_position_face_straight_in_oval" = "Mire hacia el frente";
"FaceTec_presession_hold_steady_3" = "Manténgase quieto durante: 3";
"FaceTec_presession_hold_steady_2" = "Manténgase quieto durante: 2";
"FaceTec_presession_hold_steady_1" = "Manténgase quieto durante: 1";
"FaceTec_presession_remove_dark_glasses" = "Quítese los lentes oscuros";
"FaceTec_presession_neutral_expression" = "Expresión neutra, sin sonreír";
"FaceTec_presession_conditions_too_bright" = "Demasiada luz";
"FaceTec_presession_brighten_your_environment" = "Ilumine su entorno";
"FaceTec_result_facescan_upload_message" = "Subiendo\nel escaneo facial 3D\nencriptado";
"FaceTec_result_success_message" = "Listo";
"FaceTec_result_idscan_upload_message" = "Subiendo\nel escaneo de identificación\nencriptado";
"FaceTec_result_nfc_upload_message" = "Subiendo\nla información NFC\nencriptada";
"FaceTec_result_idscan_unsuccess_message" = "La foto de la identificación\no coincide con\el rostro del usuario";
"FaceTec_result_idscan_success_front_side_message" = "Escaneo de identificación completado";
"FaceTec_result_idscan_success_front_side_back_next_message" = "Anverso de la identificación\nescaneado";
"FaceTec_result_idscan_success_front_side_nfc_next_message" = "Anverso de la identificación\nescaneado";
"FaceTec_result_idscan_success_back_side_message" = "Escaneo de identificación completado";
"FaceTec_result_idscan_success_back_side_nfc_next_message" = "Reverso de la identificación\nescaneado";
"FaceTec_result_idscan_success_passport_message" = "Escaneo de pasaporte completado";
"FaceTec_result_idscan_success_passport_nfc_next_message" = "Pasaporte escaneado";
"FaceTec_result_idscan_success_user_confirmation_message" = "Escaneo de identificación con fotografía\ncompletado";
"FaceTec_result_idscan_success_nfc_message" = "Escaneo de identificación completado";
"FaceTec_result_idscan_success_additional_review_message" = "Captura de la fotografía de identificación\ncompletada";
"FaceTec_result_idscan_skip_or_error_nfc_message" = "Información de identificación\nsubida";
"FaceTec_result_idscan_retry_face_did_not_match_message" = "El rostro no coincide\nlo suficiente";
"FaceTec_result_idscan_retry_id_not_fully_visible_message" = "La identificación\nno es totalmente visible";
"FaceTec_result_idscan_retry_ocr_results_not_good_enough_message" = "El texto de la identificación no es legible";
"FaceTec_result_idscan_retry_id_type_not_supported_message" = "No se admite este tipo de identificación\nUtilice una identificación diferente";
"FaceTec_result_idscan_retry_barcode_not_read_message" = "No se pudo escanear el código de barras\nInténtelo de nuevo";
"FaceTec_retry_header" = "Intentémoslo otra vez";
"FaceTec_retry_subheader_message" = "Necesitamos una videoselfie más nítida";
"FaceTec_retry_instruction_message_1" = "Expresión neutra, sin sonreír";
"FaceTec_retry_instruction_message_2" = "Use una postura e iluminación ideal";
"FaceTec_retry_instruction_message_3" = "Demasiado borrosa, limpie la cámara";
"FaceTec_retry_your_image_label" = "Su selfie";
"FaceTec_retry_ideal_image_label" = "Pose ideal";
"FaceTec_front_side_upload_started" = "Subiendo\nEncriptado\nEscaneo de ID";
"FaceTec_front_side_still_uploading" = "Aún subiendo...\nConexión lenta";
"FaceTec_front_side_upload_complete_awaiting_response" = "Carga Completa";
"FaceTec_front_side_upload_complete_awaiting_processing" = "Procesando\nEscaneo de ID";
"FaceTec_back_side_upload_started" = "Subiendo\nEncriptado\nPosterior de ID";
"FaceTec_back_side_still_uploading" = "Aún subiendo...\nConexión lenta";
"FaceTec_back_side_upload_complete_awaiting_response" = "Carga Completa";
"FaceTec_back_side_upload_complete_awaiting_processing" = "Procesando\nPosterior de ID";
"FaceTec_user_confirmed_info_upload_started" = "Subiendo\nTu información";
"FaceTec_user_confirmed_info_still_uploading" = "Aún subiendo...\nConexión lenta";
"FacTec_user_confirmed_info_upload_complete_awaiting_response" = "Carga Completa";
"FacTec_user_confirmed_info_upload_complete_awaiting_processing" = "Procesando";
"FaceTec_nfc_upload_started" = "Subiendo detalles\nNFC encriptados";
"FaceTec_nfc_still_uploading" = "Aún subiendo...\nConexión lenta";
"FaceTec_nfc_upload_complete_awaiting_response" = "Carga Completa";
"FaceTec_nfc_upload_complete_awaiting_processing" = "Procesando\nDetalles NFC";
"FaceTec_skipped_NFC_upload_started" = "Subiendo detalles\nID encriptados";
"FaceTec_skipped_NFC_upload_uploading" = "Aún subiendo...\nConexión lenta";
"FaceTec_skipped_NFC_upload_complete_awaiting_response" = "Carga Completa";
"FaceTec_skipped_NFC_upload_complete_awaiting_processing" = "Procesando\nDetalles de ID";
"FaceTec_success_front_side" = "Escaneo completo";
"FaceTec_success_front_side_back_next" = "Parte Frontal ID\nEscaneando";
"FaceTec_success_front_side_NFC_next" = "Parte Frontal ID\nEscaneado";
"FaceTec_success_back_side" = "Parte Posterior ID\nEscaneado";
"FaceTec_success_back_side_NFC_next" = "Parte Posterior ID\nEscaneado";
"FaceTec_success_passport" = "Escaneo\nPasaporte Completo";
"FaceTec_success_passport_NFC_next" = "Pasaporte Escaneado";
"FaceTec_success_user_confirmation" = "Escaneo de ID\nCompleto";
"FaceTec_success_NFC" = "Escaneo de ID\nCompleto";
"FaceTec_retry_face_did_not_match" = "El rostro no coincidió";
"FaceTec_retry_ID_not_fully_visible" = "Documento\nNo completamente visible";
"FaceTec_retry_OCR_result_not_good_enogh" = "Texto de ID no legible";
"FaceTec_retry_ID_type_not_supported" = "Inconsistencia ID\nPor favor, inténtalo de nuevo";
"FaceTec_skip_or_error_NFC" = "Escaneo de ID\nCompleto";
Properties
AKFaceTecCustomization
class corresponds to the preloading screen. It has the following properties:
- backgroundColor: Set the background color of the face capture interface.
- showBackgroundImage: Show or hide the background image (default is false).
- backgroundImage: Set the background image (if showBackgroundImage is false this image not show).
- showLogo: Set the visibility of the logo in the face capture interface (default is true).
- logo: Set the logo of the face capture interface (if showLogo is false this image not show).
- activityViewColor: Set the color of the progress bar.
- textColor: Set the text color of the face capture interface.
- customFont: Set the font of the face capture interface only preloading. Deprecated
- font: Set the font of the face capture interface only preloading. New
- bundleForFaceTecString: Set the bundle for FaceTec strings.
- bundleForLocalizableString: The bundle for localizable string.
Texts (Localizable)
For change the texts you have to add or modify the Localizable.strings
file in your project, the keys are the following:
"StartingFaceCapture" = "Starting Face Capture";
"EndingFaceCapture" = "Ending Face Capture";
"ScreenSuccessMessage" = "Confirmed\nCapture";
"ProcessingFaceCapture" = "Processing Face Capture";
"Ok" = "OK";
"NotCaptureInitAlert" = "Capture not started";
"InvalidCapture" = "Invalid capture";
"EndingCardCapture" = "Ending Card ID Capture";
"ProcessingCaptureID" = "Processing Card ID Capture";
"StartingCardCapture" = "Starting Card ID Capture";