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
- Arrastre
MTVerify.xcframeworka su proyecto - 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 ?? "")")
}
}
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);
}
}];
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)
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
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)
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
AppDelegateo 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)
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 compatibleoperatorCode: 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)
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
}
| 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 }
}
| 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 }
}
| 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 }
}
| 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
}
}
Información de la Versión
- Versión del SDK: 1.0.1










