Guía de Integración del SDK de iOS

Descripción General

El SDK de iOS MTVerify es un SDK de autenticación de números de teléfono móvil que ofrece una verificación de números de teléfono rápida, segura y de nivel operador.

Funciones Principales

  • Inicialización del SDK: Obtiene la configuración automáticamente e inicializa mediante el AppKey
  • Comprobación de cobertura: Comprueba si el entorno de red actual es compatible con el servicio de autenticación
  • Autenticación del número: Inicia la autenticación del número de teléfono y obtiene un token de autenticación

Requisitos del Sistema

  • iOS 12.0+
  • Xcode 14.0+

Guía de Integración

Integración Manual

  1. Arrastre MTVerify.xcframework a su proyecto
  2. En Target -> General -> Frameworks, Libraries, and Embedded Content:
    • MTVerify.xcframework: establézcalo en Do Not Embed

Inicio Rápido

Ejemplo en Swift

import MTVerify // 1. Activar el modo de depuración (opcional, recomendado durante el desarrollo) MTVerifySDK.setDebug(true) // 2. Inicializar el SDK MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in if result.isSuccess { print("Inicialización del SDK correcta") } else { print("Inicialización del SDK fallida: \(result.message)") } } // 3. Comprobar la cobertura MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in if result.isSuccess && result.isAvailable { print("Servicio de autenticación disponible, operador: \(result.operatorCode ?? "")") } } // 4. Iniciar la autenticación MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in if result.isSuccess { print("Autenticación correcta, Token: \(result.token ?? "")") } }
              
              import MTVerify

// 1. Activar el modo de depuración (opcional, recomendado durante el desarrollo)
MTVerifySDK.setDebug(true)

// 2. Inicializar el SDK
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
    if result.isSuccess {
        print("Inicialización del SDK correcta")
    } else {
        print("Inicialización del SDK fallida: \(result.message)")
    }
}

// 3. Comprobar la cobertura
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
    if result.isSuccess && result.isAvailable {
        print("Servicio de autenticación disponible, operador: \(result.operatorCode ?? "")")
    }
}

// 4. Iniciar la autenticación
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
    if result.isSuccess {
        print("Autenticación correcta, Token: \(result.token ?? "")")
    }
}

            
Este bloque de código se muestra en una ventana flotante

Ejemplo en Objective-C

@import MTVerify; // 1. Activar el modo de depuración (opcional) [MTVerifySDK setDebug:YES]; // 2. Inicializar el SDK [MTVerifySDK setupWithAppKey:@"your_app_key" environment:MTEnvironmentProduction completion:^(MTSetupResult *result) { if (result.isSuccess) { NSLog(@"Inicialización del SDK correcta"); } else { NSLog(@"Inicialización del SDK fallida: %@", result.message); } }]; // 3. Comprobar la cobertura [MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" completion:^(MTCoverageResult *result) { if (result.isSuccess && result.isAvailable) { NSLog(@"Servicio de autenticación disponible, operador: %@", result.operatorCode); } }]; // 4. Iniciar la autenticación [MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" completion:^(MTAuthResult *result) { if (result.isSuccess) { NSLog(@"Autenticación correcta, Token: %@", result.token); } }];
              
              @import MTVerify;

// 1. Activar el modo de depuración (opcional)
[MTVerifySDK setDebug:YES];

// 2. Inicializar el SDK
[MTVerifySDK setupWithAppKey:@"your_app_key" 
                 environment:MTEnvironmentProduction 
                  completion:^(MTSetupResult *result) {
    if (result.isSuccess) {
        NSLog(@"Inicialización del SDK correcta");
    } else {
        NSLog(@"Inicialización del SDK fallida: %@", result.message);
    }
}];

// 3. Comprobar la cobertura
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" 
                               completion:^(MTCoverageResult *result) {
    if (result.isSuccess && result.isAvailable) {
        NSLog(@"Servicio de autenticación disponible, operador: %@", result.operatorCode);
    }
}];

// 4. Iniciar la autenticación
[MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" 
                                     completion:^(MTAuthResult *result) {
    if (result.isSuccess) {
        NSLog(@"Autenticación correcta, Token: %@", result.token);
    }
}];

            
Este bloque de código se muestra en una ventana flotante

Referencia de la API

Clase MTVerifySDK

MTVerifySDK es la clase central del SDK y proporciona todas las funciones relacionadas con la autenticación.

Propiedades

Propiedad Tipo Descripción
version String Número de versión del SDK (solo lectura, propiedad de clase)
isInitialized Bool Si el SDK se ha inicializado (solo lectura, propiedad de clase)

Métodos

setDebug(_:)

Establece el modo de depuración; cuando está activado, se generan registros detallados.

static func setDebug(_ enabled: Bool)
              
              static func setDebug(_ enabled: Bool)

            
Este bloque de código se muestra en una ventana flotante

Parámetros

Parámetro Tipo Descripción
enabled Bool Si se debe activar el modo de depuración

Notas

  • Se recomienda activarlo durante el desarrollo y las pruebas
  • Se recomienda desactivarlo en las versiones de lanzamiento
isDebug()

Obtiene el estado actual del modo de depuración.

static func isDebug() -> Bool
              
              static func isDebug() -> Bool

            
Este bloque de código se muestra en una ventana flotante

Valor de Retorno

Bool - Si el modo de depuración está activado

setup(appKey:environment:completion:)

Inicializa el SDK. Usa el AppKey para obtener automáticamente la configuración del servidor y completar la inicialización.

static func setup(appKey: String, environment: MTEnvironment = .production, completion: @escaping (MTSetupResult) -> Void)
              
              static func setup(appKey: String,
                  environment: MTEnvironment = .production,
                  completion: @escaping (MTSetupResult) -> Void)

            
Este bloque de código se muestra en una ventana flotante

Parámetros

Parámetro Tipo Descripción
appKey String AppKey de la aplicación, obtenido de la consola
environment MTEnvironment Entorno de ejecución, predeterminado .production
completion (MTSetupResult) -> Void Callback al completar la inicialización

Notas

  • La inicialización debe completarse antes de llamar a otras API
  • La inicialización es una operación asíncrona; confirme el éxito en el callback
  • Se recomienda llamarlo en AppDelegate o al iniciar la aplicación
checkCoverage(phoneNumber:completion:)

Comprueba si el entorno de red actual es compatible con el servicio de autenticación.

static func checkCoverage(phoneNumber: String, completion: @escaping (MTCoverageResult) -> Void)
              
              static func checkCoverage(phoneNumber: String,
                          completion: @escaping (MTCoverageResult) -> Void)

            
Este bloque de código se muestra en una ventana flotante

Parámetros

Parámetro Tipo Descripción
phoneNumber String Número de teléfono (código de país + número de teléfono)
completion (MTCoverageResult) -> Void Callback al completar la comprobación

Resultado Devuelto

Se devuelve mediante el objeto MTCoverageResult:

  • isAvailable: si la autenticación es compatible
  • operatorCode: código del operador; ignore este campo, devuelve vacío de forma predeterminada

Notas

  • Asegúrese de que el SDK esté inicializado antes de llamarlo
  • Se recomienda llamar a este método para comprobar la cobertura antes de iniciar la autenticación
startAuthentication(phoneNumber:completion:)

Inicia la autenticación del número de teléfono.

static func startAuthentication(phoneNumber: String, completion: @escaping (MTAuthResult) -> Void)
              
              static func startAuthentication(phoneNumber: String,
                                completion: @escaping (MTAuthResult) -> Void)

            
Este bloque de código se muestra en una ventana flotante

Parámetros

Parámetro Tipo Descripción
phoneNumber String Número de teléfono (código de país + número de teléfono)
completion (MTAuthResult) -> Void Callback al completar la autenticación

Resultado Devuelto

Se devuelve mediante el objeto MTAuthResult:

  • token: token de autenticación, usado para la verificación en el backend

Notas

  • Asegúrese de que el SDK esté inicializado antes de llamarlo
  • Debe usarse en un entorno de red celular
  • El token obtenido debe pasarse al backend para una segunda verificación

Enumeraciones

MTEnvironment

Enumeración del entorno de ejecución del SDK.

@objc public enum MTEnvironment: Int { case sandbox = 0 // Entorno sandbox (pruebas) case production = 1 // Entorno de producción }
              
              @objc public enum MTEnvironment: Int {
    case sandbox = 0      // Entorno sandbox (pruebas)
    case production = 1   // Entorno de producción
}

            
Este bloque de código se muestra en una ventana flotante
Valor Descripción
.sandbox Entorno de pruebas sandbox
.production Entorno de producción

Tipos de Resultado

MTSetupResult

Clase del resultado de la inicialización.

@objcMembers public class MTSetupResult: NSObject { /// Código de resultado (0 para éxito, otros para fallo) public let code: Int /// Mensaje descriptivo public let message: String /// Si es correcto public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTSetupResult: NSObject {
    /// Código de resultado (0 para éxito, otros para fallo)
    public let code: Int
    
    /// Mensaje descriptivo
    public let message: String
    
    /// Si es correcto
    public var isSuccess: Bool { return code == 0 }
}

            
Este bloque de código se muestra en una ventana flotante
Propiedad Tipo Descripción
code Int Código de resultado; 0 significa éxito
message String Mensaje descriptivo
isSuccess Bool Si es correcto (propiedad calculada)

MTCoverageResult

Clase del resultado de la comprobación de cobertura.

@objcMembers public class MTCoverageResult: NSObject { /// Código de resultado (0 para éxito, otros para fallo) public let code: Int /// Mensaje descriptivo public let message: String /// Si está disponible public let isAvailable: Bool /// Código del operador public let operatorCode: String? /// Si es correcto public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTCoverageResult: NSObject {
    /// Código de resultado (0 para éxito, otros para fallo)
    public let code: Int
    
    /// Mensaje descriptivo
    public let message: String
    
    /// Si está disponible
    public let isAvailable: Bool
    
    /// Código del operador
    public let operatorCode: String?
    
    /// Si es correcto
    public var isSuccess: Bool { return code == 0 }
}

            
Este bloque de código se muestra en una ventana flotante
Propiedad Tipo Descripción
code Int Código de resultado; 0 significa éxito
message String Mensaje descriptivo
isAvailable Bool Si el entorno actual es compatible con la autenticación
operatorCode String? Código del operador (p. ej. "TELKOMSEL"); ignore este campo, devuelve vacío de forma predeterminada
isSuccess Bool Si es correcto (propiedad calculada)

MTAuthResult

Clase del resultado de la autenticación.

@objcMembers public class MTAuthResult: NSObject { /// Código de resultado (0 para éxito, otros para fallo) public let code: Int /// Mensaje descriptivo public let message: String /// Token de autenticación (usado para la verificación en el backend) public let token: String? /// Si es correcto public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTAuthResult: NSObject {
    /// Código de resultado (0 para éxito, otros para fallo)
    public let code: Int
    
    /// Mensaje descriptivo
    public let message: String
    
    /// Token de autenticación (usado para la verificación en el backend)
    public let token: String?
    
    /// Si es correcto
    public var isSuccess: Bool { return code == 0 }
}

            
Este bloque de código se muestra en una ventana flotante
Propiedad Tipo Descripción
code Int Código de resultado; 0 significa éxito
message String Mensaje descriptivo
token String? Token de autenticación, usado para la segunda verificación en el backend
isSuccess Bool Si es correcto (propiedad calculada)

Ejemplo Completo

Ejemplo Completo de Integración en Swift

import UIKit import MTVerify class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Activar el modo de depuración MTVerifySDK.setDebug(true) // Inicializar el SDK initializeSDK() } // MARK: - Inicialización del SDK private func initializeSDK() { MTVerifySDK.setup( appKey: "your_app_key", environment: .production ) { [weak self] result in if result.isSuccess { print("✅ Inicialización del SDK correcta") print("Versión del SDK: \(MTVerifySDK.version)") print("Inicializado: \(MTVerifySDK.isInitialized)") } else { print("❌ Inicialización del SDK fallida: \(result.message) (code: \(result.code))") } } } // MARK: - Comprobar la Cobertura func checkCoverage(phoneNumber: String) { // Comprobar si el SDK está inicializado guard MTVerifySDK.isInitialized else { print("⚠️ SDK no inicializado") return } MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in if result.isSuccess { if result.isAvailable { print("✅ Servicio disponible") print("Operador: \(result.operatorCode ?? "Desconocido")") } else { print("⚠️ El entorno actual no es compatible con el servicio de autenticación") } } else { print("❌ Comprobación fallida: \(result.message) (code: \(result.code))") } } } // MARK: - Iniciar la Autenticación func authenticate(phoneNumber: String) { // Comprobar si el SDK está inicializado guard MTVerifySDK.isInitialized else { print("⚠️ SDK no inicializado") return } MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in if result.isSuccess { print("✅ Autenticación correcta") print("Token: \(result.token ?? "")") // TODO: Enviar el token al backend para su verificación self.verifyTokenOnServer(token: result.token ?? "") } else { print("❌ Autenticación fallida: \(result.message) (code: \(result.code))") } } } // MARK: - Verificación en el Backend private func verifyTokenOnServer(token: String) { // Enviar el token a su servidor backend para su verificación // El backend usa el token para llamar a la API del servidor MTVerify y verificar el número de teléfono } }
              
              import UIKit
import MTVerify

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Activar el modo de depuración
        MTVerifySDK.setDebug(true)
        
        // Inicializar el SDK
        initializeSDK()
    }
    
    // MARK: - Inicialización del SDK
    
    private func initializeSDK() {
        MTVerifySDK.setup(
            appKey: "your_app_key",
            environment: .production
        ) { [weak self] result in
            if result.isSuccess {
                print("✅ Inicialización del SDK correcta")
                print("Versión del SDK: \(MTVerifySDK.version)")
                print("Inicializado: \(MTVerifySDK.isInitialized)")
            } else {
                print("❌ Inicialización del SDK fallida: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Comprobar la Cobertura
    
    func checkCoverage(phoneNumber: String) {
        // Comprobar si el SDK está inicializado
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK no inicializado")
            return
        }
        
        MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                if result.isAvailable {
                    print("✅ Servicio disponible")
                    print("Operador: \(result.operatorCode ?? "Desconocido")")
                } else {
                    print("⚠️ El entorno actual no es compatible con el servicio de autenticación")
                }
            } else {
                print("❌ Comprobación fallida: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Iniciar la Autenticación
    
    func authenticate(phoneNumber: String) {
        // Comprobar si el SDK está inicializado
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK no inicializado")
            return
        }
        
        MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                print("✅ Autenticación correcta")
                print("Token: \(result.token ?? "")")
                
                // TODO: Enviar el token al backend para su verificación
                self.verifyTokenOnServer(token: result.token ?? "")
                
            } else {
                print("❌ Autenticación fallida: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Verificación en el Backend
    
    private func verifyTokenOnServer(token: String) {
        // Enviar el token a su servidor backend para su verificación
        // El backend usa el token para llamar a la API del servidor MTVerify y verificar el número de teléfono
    }
}

            
Este bloque de código se muestra en una ventana flotante

Información de la Versión

  • Versión del SDK: 1.0.1
Icon Solid Transparent White Qiyu
Contacto