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
- Faites glisser
MTVerify.xcframeworkdans votre projet - 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 ?? "")")
}
}
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);
}
}];
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)
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
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)
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
AppDelegateou 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)
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 chargeoperatorCode: 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)
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
}
| 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 }
}
| 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 }
}
| 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 }
}
| 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
}
}
Informations sur la Version
- Version du SDK : 1.0.1










