Huellas digitales de dispositivos - Integración con iOS
Esta página describe cómo agregar el SDK de Threatmetrix a su proyecto de iOS.
Para descargar los SDK de Huellas digitales de dispositivos, inicie sesión en vPortal y vaya al Centro de ayuda.
Una vez que haya añadido los archivos de ThreatMetrix a su proyecto, su aplicación generará automáticamente una huella digital del dispositivo durante la inicialización.
Integración
Las siguientes secciones describen cómo agregar los módulos de ThreatMetrix a su proyecto de iOS. La sección Descripción general describe el proceso y define los archivos que deberá incluir. La sección Guía proporciona instrucciones de paso a paso para agregar los módulos a su proyecto y asegurarse de que su aplicación tiene la configuración necesaria.
Descripción
La integración de Huellas digitales de dispositivos en su aplicación requiere crear nuevos módulos para los siguientes archivos que son proporcionados por Threatmetrix:
- TMXProfilingConnections.dmg: Maneja la transferencia de datos hacia y desde el backend de Threatmetrix.
- TMXProfiling.dmg: Gestiona la generación de perfiles de dispositivos.
Guía
Siga los siguientes pasos para agregar los módulos de ThreatMetrix a su proyecto:
-
Guarde los módulos de ThreatMetrix en su máquina local: TMXProfiling.dmg y TMXProfilingConnections.dmg.
-
Copie los siguientes archivos en el directorio de su aplicación como se muestra en la siguiente imagen: TMXProfiling.xcframework y TMXProfilingConnections.xcframework. TMXBehavioralBiometrics no es necesario para esta integración.
-
Abra su aplicación en Xcode.
-
Seleccione el panel “Project Navigator” en Xcode.
-
Arrastre y suelte los archivos del marco del paso 2 en su aplicación.
-
Seleccione “Copy item if needed” (Copiar elemento si es necesario).
-
Asegúrese de que el objetivo correcto esté seleccionado en la sección “Add to targets” (Agregar a los objetivos), como se muestra a continuación:
-
Seleccione el objetivo de la aplicación.
-
Seleccione la pestaña General.
-
En la sección “Frameworks, Libraries and Embedded Content” (Marcos, bibliotecas y contenido integrado), asegúrese de que se añadan los siguientes archivos: TMXProfiling.xcframework y TMXProfilingConnections.xcframework.
-
Asegúrese de que todos los archivos se incluyan con la configuración “Embed and Sign” (integrar y firmar), como se describe a continuación:
- Seleccione la pestaña “Build Phases” (Fases de compilación).
- Abra las secciones “Link Binary with Libraries” (Vincular binario con bibliotecas) y “Embed Frameworks” (Integrar marcos) y compruebe que los archivos de ThreatMetrix aparezcan en la lista, como se muestra en la siguiente imagen. TMXBehavioralBiometrics no es necesario para esta integración.
-
Copie el siguiente código y péguelo en su proyecto:
// // LemonBankProfileController.swift // VestaCorporation // // Creado por Admin el 05/03/2018. // Derechos de autor © 2018 VestaCorporation. Todos los derechos reservados. // importar Foundation importar UIKit importar TMXProfiling importar TMXProfilingConnections class TrustDefender: NSObject { static let shared = TrustDefender() private var profile: TMXProfiling = TMXProfiling.sharedInstance()! private var sessionID: String = "" private var orgID: String = "" private var webSessionID: String = "" private var deviceName : String = "" private var deviceModel : String = "" private(set) var isProfileInitialized: Bool = false func configure(forDeviceName name: String, deviceModel: String, orgID: String, webSessionID: String) -> TrustDefender { self.deviceName = name self.deviceModel = deviceModel self.orgID = orgID self.webSessionID = webSessionID let profilingConnections = TMXProfilingConnections.init() profilingConnections.connectionRetryCount = 2 //La configuración únicamente falla debido a un error de programación, por lo tanto, al usar una aserción aquí nos aseguramos de que no haya un error en nuestro objeto de configuración profile.configure(configData: [ TMXOrgID: orgID, TMXFingerprintServer: "h.online-metrix.net", // (OPCIONAL) Si se utilizan grupos para compartir de Keychain Access, especifique de esta manera TMXKeychainAccessGroup: "TEAMID.com.threatmetrix", TMXProfilingConnectionsInstance: profilingConnections ]) return self } func configureForDefaultDeviceInformation(orgID: String, webSessionID: String) -> TrustDefender { if isProfileInitialized { return self } return configure(forDeviceName: UIDevice.current.name, deviceModel: UIDevice.current.model, orgID: orgID, webSessionID: webSessionID) } func doProfile() { if isProfileInitialized { return } print("Using TrustDefender framework \(profile.version())") // Lanzar solicitud de perfil. profile.profileDevice(profileOptions: [TMXCustomAttributes: [deviceName, deviceModel], TMXSessionID: webSessionID]) { (result) in guard let response = result as? [String: Any], let sessionID = response[TMXSessionID] as? String, let profileStatus = response[TMXProfileStatus] as? NSNumber, let status = TMXStatusCode(rawValue: profileStatus.intValue) else { print("THMTrustDefender profile wrong response") return } var statusString = "" self.sessionID = sessionID switch status { case .ok: statusString = "ok" self.isProfileInitialized = true case .networkTimeoutError: statusString = "Timed out" case .connectionError: statusString = "Connection Error" case .hostNotFoundError: statusString = "Host Not Found Error" case .internalError: statusString = "Internal Error" case .interruptedError: statusString = "Interrupted Error" default: statusString = "Other reason" } print("Profile completed with: \(statusString) and session ID: \(self.sessionID)") } } }