Guide d'Intégration du SDK iOS

Vue d'ensemble

Le SDK iOS MTVerify est un SDK d'authentification de numéro de mobile qui offre une vérification de numéro de téléphone rapide, sécurisée et de niveau opérateur.

Fonctionnalités Principales

  • Initialisation du SDK : Récupère automatiquement la configuration et initialise via l'AppKey
  • Vérification de couverture : Vérifie si l'environnement réseau actuel prend en charge le service d'authentification
  • Authentification du numéro : Lance l'authentification du numéro de mobile et obtient un jeton d'authentification

Configuration Requise

  • iOS 12.0+
  • Xcode 14.0+

Guide d'Intégration

Intégration Manuelle

  1. Faites glisser MTVerify.xcframework dans votre projet
  2. Dans Target -> General -> Frameworks, Libraries, and Embedded Content :
    • MTVerify.xcframework : définissez sur Do Not Embed

Démarrage Rapide

Exemple Swift

import MTVerify // 1. Activer le mode débogage (facultatif, recommandé pendant le développement) MTVerifySDK.setDebug(true) // 2. Initialiser le SDK MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in if result.isSuccess { print("Initialisation du SDK réussie") } else { print("Échec de l'initialisation du SDK : \(result.message)") } } // 3. Vérifier la couverture MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in if result.isSuccess && result.isAvailable { print("Service d'authentification disponible, opérateur : \(result.operatorCode ?? "")") } } // 4. Lancer l'authentification MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in if result.isSuccess { print("Authentification réussie, Token : \(result.token ?? "")") } }
              
              import MTVerify

// 1. Activer le mode débogage (facultatif, recommandé pendant le développement)
MTVerifySDK.setDebug(true)

// 2. Initialiser le SDK
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
    if result.isSuccess {
        print("Initialisation du SDK réussie")
    } else {
        print("Échec de l'initialisation du SDK : \(result.message)")
    }
}

// 3. Vérifier la couverture
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
    if result.isSuccess && result.isAvailable {
        print("Service d'authentification disponible, opérateur : \(result.operatorCode ?? "")")
    }
}

// 4. Lancer l'authentification
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
    if result.isSuccess {
        print("Authentification réussie, Token : \(result.token ?? "")")
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple Objective-C

@import MTVerify; // 1. Activer le mode débogage (facultatif) [MTVerifySDK setDebug:YES]; // 2. Initialiser le SDK [MTVerifySDK setupWithAppKey:@"your_app_key" environment:MTEnvironmentProduction completion:^(MTSetupResult *result) { if (result.isSuccess) { NSLog(@"Initialisation du SDK réussie"); } else { NSLog(@"Échec de l'initialisation du SDK : %@", result.message); } }]; // 3. Vérifier la couverture [MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" completion:^(MTCoverageResult *result) { if (result.isSuccess && result.isAvailable) { NSLog(@"Service d'authentification disponible, opérateur : %@", result.operatorCode); } }]; // 4. Lancer l'authentification [MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" completion:^(MTAuthResult *result) { if (result.isSuccess) { NSLog(@"Authentification réussie, Token : %@", result.token); } }];
              
              @import MTVerify;

// 1. Activer le mode débogage (facultatif)
[MTVerifySDK setDebug:YES];

// 2. Initialiser le SDK
[MTVerifySDK setupWithAppKey:@"your_app_key" 
                 environment:MTEnvironmentProduction 
                  completion:^(MTSetupResult *result) {
    if (result.isSuccess) {
        NSLog(@"Initialisation du SDK réussie");
    } else {
        NSLog(@"Échec de l'initialisation du SDK : %@", result.message);
    }
}];

// 3. Vérifier la couverture
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" 
                               completion:^(MTCoverageResult *result) {
    if (result.isSuccess && result.isAvailable) {
        NSLog(@"Service d'authentification disponible, opérateur : %@", result.operatorCode);
    }
}];

// 4. Lancer l'authentification
[MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" 
                                     completion:^(MTAuthResult *result) {
    if (result.isSuccess) {
        NSLog(@"Authentification réussie, Token : %@", result.token);
    }
}];

            
Afficher ce bloc de code dans la fenêtre flottante

Référence de l'API

Classe MTVerifySDK

MTVerifySDK est la classe principale du SDK et fournit toutes les fonctionnalités liées à l'authentification.

Propriétés

Propriété Type Description
version String Numéro de version du SDK (lecture seule, propriété de classe)
isInitialized Bool Si le SDK a été initialisé (lecture seule, propriété de classe)

Méthodes

setDebug(_:)

Définit le mode débogage ; lorsqu'il est activé, des journaux détaillés sont générés.

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

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres

Paramètre Type Description
enabled Bool S'il faut activer le mode débogage

Remarques

  • Recommandé d'activer pendant le développement et les tests
  • Recommandé de désactiver dans les versions de production
isDebug()

Obtient l'état actuel du mode débogage.

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

            
Afficher ce bloc de code dans la fenêtre flottante

Valeur de Retour

Bool - Si le mode débogage est activé

setup(appKey:environment:completion:)

Initialise le SDK. Utilise l'AppKey pour récupérer automatiquement la configuration depuis le serveur et terminer l'initialisation.

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

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres

Paramètre Type Description
appKey String AppKey de l'application, obtenu depuis la console
environment MTEnvironment Environnement d'exécution, par défaut .production
completion (MTSetupResult) -> Void Rappel de fin d'initialisation

Remarques

  • L'initialisation doit être terminée avant d'appeler d'autres API
  • L'initialisation est une opération asynchrone ; confirmez le succès dans le rappel
  • Recommandé d'appeler dans AppDelegate ou au lancement de l'application
checkCoverage(phoneNumber:completion:)

Vérifie si l'environnement réseau actuel prend en charge le service d'authentification.

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

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres

Paramètre Type Description
phoneNumber String Numéro de mobile (indicatif du pays + numéro de téléphone)
completion (MTCoverageResult) -> Void Rappel de fin de vérification

Résultat Renvoyé

Renvoyé via l'objet MTCoverageResult :

  • isAvailable : si l'authentification est prise en charge
  • operatorCode : code de l'opérateur ; ignorez ce champ, il renvoie vide par défaut

Remarques

  • Assurez-vous que le SDK est initialisé avant l'appel
  • Recommandé d'appeler cette méthode pour vérifier la couverture avant de lancer l'authentification
startAuthentication(phoneNumber:completion:)

Lance l'authentification du numéro de mobile.

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

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres

Paramètre Type Description
phoneNumber String Numéro de mobile (indicatif du pays + numéro de téléphone)
completion (MTAuthResult) -> Void Rappel de fin d'authentification

Résultat Renvoyé

Renvoyé via l'objet MTAuthResult :

  • token : jeton d'authentification, utilisé pour la vérification côté backend

Remarques

  • Assurez-vous que le SDK est initialisé avant l'appel
  • Doit être utilisé dans un environnement de réseau cellulaire
  • Le jeton obtenu doit être transmis au backend pour une seconde vérification

Énumérations

MTEnvironment

Énumération de l'environnement d'exécution du SDK.

@objc public enum MTEnvironment: Int { case sandbox = 0 // Environnement sandbox (test) case production = 1 // Environnement de production }
              
              @objc public enum MTEnvironment: Int {
    case sandbox = 0      // Environnement sandbox (test)
    case production = 1   // Environnement de production
}

            
Afficher ce bloc de code dans la fenêtre flottante
Valeur Description
.sandbox Environnement de test sandbox
.production Environnement de production

Types de Résultat

MTSetupResult

Classe du résultat de l'initialisation.

@objcMembers public class MTSetupResult: NSObject { /// Code de résultat (0 pour succès, autres pour échec) public let code: Int /// Message descriptif public let message: String /// Si réussi public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTSetupResult: NSObject {
    /// Code de résultat (0 pour succès, autres pour échec)
    public let code: Int
    
    /// Message descriptif
    public let message: String
    
    /// Si réussi
    public var isSuccess: Bool { return code == 0 }
}

            
Afficher ce bloc de code dans la fenêtre flottante
Propriété Type Description
code Int Code de résultat ; 0 signifie succès
message String Message descriptif
isSuccess Bool Si réussi (propriété calculée)

MTCoverageResult

Classe du résultat de la vérification de couverture.

@objcMembers public class MTCoverageResult: NSObject { /// Code de résultat (0 pour succès, autres pour échec) public let code: Int /// Message descriptif public let message: String /// Si disponible public let isAvailable: Bool /// Code de l'opérateur public let operatorCode: String? /// Si réussi public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTCoverageResult: NSObject {
    /// Code de résultat (0 pour succès, autres pour échec)
    public let code: Int
    
    /// Message descriptif
    public let message: String
    
    /// Si disponible
    public let isAvailable: Bool
    
    /// Code de l'opérateur
    public let operatorCode: String?
    
    /// Si réussi
    public var isSuccess: Bool { return code == 0 }
}

            
Afficher ce bloc de code dans la fenêtre flottante
Propriété Type Description
code Int Code de résultat ; 0 signifie succès
message String Message descriptif
isAvailable Bool Si l'environnement actuel prend en charge l'authentification
operatorCode String? Code de l'opérateur (p. ex. "TELKOMSEL") ; ignorez ce champ, il renvoie vide par défaut
isSuccess Bool Si réussi (propriété calculée)

MTAuthResult

Classe du résultat de l'authentification.

@objcMembers public class MTAuthResult: NSObject { /// Code de résultat (0 pour succès, autres pour échec) public let code: Int /// Message descriptif public let message: String /// Jeton d'authentification (utilisé pour la vérification côté backend) public let token: String? /// Si réussi public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTAuthResult: NSObject {
    /// Code de résultat (0 pour succès, autres pour échec)
    public let code: Int
    
    /// Message descriptif
    public let message: String
    
    /// Jeton d'authentification (utilisé pour la vérification côté backend)
    public let token: String?
    
    /// Si réussi
    public var isSuccess: Bool { return code == 0 }
}

            
Afficher ce bloc de code dans la fenêtre flottante
Propriété Type Description
code Int Code de résultat ; 0 signifie succès
message String Message descriptif
token String? Jeton d'authentification, utilisé pour la seconde vérification côté backend
isSuccess Bool Si réussi (propriété calculée)

Exemple Complet

Exemple Complet d'Intégration en Swift

import UIKit import MTVerify class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Activer le mode débogage MTVerifySDK.setDebug(true) // Initialiser le SDK initializeSDK() } // MARK: - Initialisation du SDK private func initializeSDK() { MTVerifySDK.setup( appKey: "your_app_key", environment: .production ) { [weak self] result in if result.isSuccess { print("✅ Initialisation du SDK réussie") print("Version du SDK : \(MTVerifySDK.version)") print("Initialisé : \(MTVerifySDK.isInitialized)") } else { print("❌ Échec de l'initialisation du SDK : \(result.message) (code: \(result.code))") } } } // MARK: - Vérifier la Couverture func checkCoverage(phoneNumber: String) { // Vérifier si le SDK est initialisé guard MTVerifySDK.isInitialized else { print("⚠️ SDK non initialisé") return } MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in if result.isSuccess { if result.isAvailable { print("✅ Service disponible") print("Opérateur : \(result.operatorCode ?? "Inconnu")") } else { print("⚠️ L'environnement actuel ne prend pas en charge le service d'authentification") } } else { print("❌ Échec de la vérification : \(result.message) (code: \(result.code))") } } } // MARK: - Lancer l'Authentification func authenticate(phoneNumber: String) { // Vérifier si le SDK est initialisé guard MTVerifySDK.isInitialized else { print("⚠️ SDK non initialisé") return } MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in if result.isSuccess { print("✅ Authentification réussie") print("Token : \(result.token ?? "")") // TODO : Envoyer le jeton au backend pour vérification self.verifyTokenOnServer(token: result.token ?? "") } else { print("❌ Échec de l'authentification : \(result.message) (code: \(result.code))") } } } // MARK: - Vérification côté Backend private func verifyTokenOnServer(token: String) { // Envoyer le jeton à votre serveur backend pour vérification // Le backend utilise le jeton pour appeler l'API serveur MTVerify afin de vérifier le numéro de téléphone } }
              
              import UIKit
import MTVerify

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Activer le mode débogage
        MTVerifySDK.setDebug(true)
        
        // Initialiser le SDK
        initializeSDK()
    }
    
    // MARK: - Initialisation du SDK
    
    private func initializeSDK() {
        MTVerifySDK.setup(
            appKey: "your_app_key",
            environment: .production
        ) { [weak self] result in
            if result.isSuccess {
                print("✅ Initialisation du SDK réussie")
                print("Version du SDK : \(MTVerifySDK.version)")
                print("Initialisé : \(MTVerifySDK.isInitialized)")
            } else {
                print("❌ Échec de l'initialisation du SDK : \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Vérifier la Couverture
    
    func checkCoverage(phoneNumber: String) {
        // Vérifier si le SDK est initialisé
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK non initialisé")
            return
        }
        
        MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                if result.isAvailable {
                    print("✅ Service disponible")
                    print("Opérateur : \(result.operatorCode ?? "Inconnu")")
                } else {
                    print("⚠️ L'environnement actuel ne prend pas en charge le service d'authentification")
                }
            } else {
                print("❌ Échec de la vérification : \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Lancer l'Authentification
    
    func authenticate(phoneNumber: String) {
        // Vérifier si le SDK est initialisé
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK non initialisé")
            return
        }
        
        MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                print("✅ Authentification réussie")
                print("Token : \(result.token ?? "")")
                
                // TODO : Envoyer le jeton au backend pour vérification
                self.verifyTokenOnServer(token: result.token ?? "")
                
            } else {
                print("❌ Échec de l'authentification : \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Vérification côté Backend
    
    private func verifyTokenOnServer(token: String) {
        // Envoyer le jeton à votre serveur backend pour vérification
        // Le backend utilise le jeton pour appeler l'API serveur MTVerify afin de vérifier le numéro de téléphone
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Informations sur la Version

  • Version du SDK : 1.0.1
Icon Solid Transparent White Qiyu
Contactez-nous