iOS-SDK-Integrationsleitfaden

Übersicht

Das MTVerify iOS SDK ist ein SDK zur Rufnummernauthentifizierung, das eine schnelle, sichere Rufnummernverifizierung auf Carrier-Niveau bietet.

Hauptfunktionen

  • SDK-Initialisierung: Automatisches Abrufen der Konfiguration und Initialisierung über den AppKey
  • Abdeckungsprüfung: Prüfen, ob die aktuelle Netzwerkumgebung den Authentifizierungsdienst unterstützt
  • Rufnummernauthentifizierung: Rufnummernauthentifizierung einleiten und ein Authentifizierungs-Token erhalten

Systemanforderungen

  • iOS 12.0+
  • Xcode 14.0+

Integrationsleitfaden

Manuelle Integration

  1. Ziehen Sie MTVerify.xcframework in Ihr Projekt
  2. Unter Target -> General -> Frameworks, Libraries, and Embedded Content:
    • MTVerify.xcframework: auf Do Not Embed setzen

Schnellstart

Swift-Beispiel

import MTVerify // 1. Debug-Modus aktivieren (optional, in der Entwicklungsphase empfohlen) MTVerifySDK.setDebug(true) // 2. Das SDK initialisieren MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in if result.isSuccess { print("SDK-Initialisierung erfolgreich") } else { print("SDK-Initialisierung fehlgeschlagen: \(result.message)") } } // 3. Abdeckung prüfen MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in if result.isSuccess && result.isAvailable { print("Authentifizierungsdienst verfügbar, Carrier: \(result.operatorCode ?? "")") } } // 4. Authentifizierung einleiten MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in if result.isSuccess { print("Authentifizierung erfolgreich, Token: \(result.token ?? "")") } }
              
              import MTVerify

// 1. Debug-Modus aktivieren (optional, in der Entwicklungsphase empfohlen)
MTVerifySDK.setDebug(true)

// 2. Das SDK initialisieren
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
    if result.isSuccess {
        print("SDK-Initialisierung erfolgreich")
    } else {
        print("SDK-Initialisierung fehlgeschlagen: \(result.message)")
    }
}

// 3. Abdeckung prüfen
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
    if result.isSuccess && result.isAvailable {
        print("Authentifizierungsdienst verfügbar, Carrier: \(result.operatorCode ?? "")")
    }
}

// 4. Authentifizierung einleiten
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
    if result.isSuccess {
        print("Authentifizierung erfolgreich, Token: \(result.token ?? "")")
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Objective-C-Beispiel

@import MTVerify; // 1. Debug-Modus aktivieren (optional) [MTVerifySDK setDebug:YES]; // 2. Das SDK initialisieren [MTVerifySDK setupWithAppKey:@"your_app_key" environment:MTEnvironmentProduction completion:^(MTSetupResult *result) { if (result.isSuccess) { NSLog(@"SDK-Initialisierung erfolgreich"); } else { NSLog(@"SDK-Initialisierung fehlgeschlagen: %@", result.message); } }]; // 3. Abdeckung prüfen [MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" completion:^(MTCoverageResult *result) { if (result.isSuccess && result.isAvailable) { NSLog(@"Authentifizierungsdienst verfügbar, Carrier: %@", result.operatorCode); } }]; // 4. Authentifizierung einleiten [MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" completion:^(MTAuthResult *result) { if (result.isSuccess) { NSLog(@"Authentifizierung erfolgreich, Token: %@", result.token); } }];
              
              @import MTVerify;

// 1. Debug-Modus aktivieren (optional)
[MTVerifySDK setDebug:YES];

// 2. Das SDK initialisieren
[MTVerifySDK setupWithAppKey:@"your_app_key" 
                 environment:MTEnvironmentProduction 
                  completion:^(MTSetupResult *result) {
    if (result.isSuccess) {
        NSLog(@"SDK-Initialisierung erfolgreich");
    } else {
        NSLog(@"SDK-Initialisierung fehlgeschlagen: %@", result.message);
    }
}];

// 3. Abdeckung prüfen
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" 
                               completion:^(MTCoverageResult *result) {
    if (result.isSuccess && result.isAvailable) {
        NSLog(@"Authentifizierungsdienst verfügbar, Carrier: %@", result.operatorCode);
    }
}];

// 4. Authentifizierung einleiten
[MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" 
                                     completion:^(MTAuthResult *result) {
    if (result.isSuccess) {
        NSLog(@"Authentifizierung erfolgreich, Token: %@", result.token);
    }
}];

            
Diesen Codeblock im schwebenden Fenster anzeigen

API-Referenz

Klasse MTVerifySDK

MTVerifySDK ist die Kernklasse des SDK und bietet alle authentifizierungsbezogenen Funktionen.

Eigenschaften

Eigenschaft Typ Beschreibung
version String SDK-Versionsnummer (schreibgeschützt, Klasseneigenschaft)
isInitialized Bool Ob das SDK initialisiert wurde (schreibgeschützt, Klasseneigenschaft)

Methoden

setDebug(_:)

Legt den Debug-Modus fest; bei Aktivierung werden detaillierte Logs ausgegeben.

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Parameter

Parameter Typ Beschreibung
enabled Bool Ob der Debug-Modus aktiviert werden soll

Hinweise

  • Empfohlen, in der Entwicklungs- und Testphase zu aktivieren
  • In Release-Builds empfohlen zu deaktivieren
isDebug()

Ruft den aktuellen Status des Debug-Modus ab.

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Rückgabewert

Bool - Ob der Debug-Modus aktiviert ist

setup(appKey:environment:completion:)

Initialisiert das SDK. Verwendet den AppKey, um die Konfiguration automatisch vom Server abzurufen und die Initialisierung abzuschließen.

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Parameter

Parameter Typ Beschreibung
appKey String App-AppKey, aus der Konsole bezogen
environment MTEnvironment Laufzeitumgebung, Standard ist .production
completion (MTSetupResult) -> Void Callback bei abgeschlossener Initialisierung

Hinweise

  • Die Initialisierung muss abgeschlossen sein, bevor andere APIs aufgerufen werden
  • Die Initialisierung ist ein asynchroner Vorgang; bestätigen Sie den Erfolg im Callback
  • Empfohlen, im AppDelegate oder beim App-Start aufzurufen
checkCoverage(phoneNumber:completion:)

Prüft, ob die aktuelle Netzwerkumgebung den Authentifizierungsdienst unterstützt.

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Parameter

Parameter Typ Beschreibung
phoneNumber String Rufnummer (Ländervorwahl + Rufnummer)
completion (MTCoverageResult) -> Void Callback bei abgeschlossener Prüfung

Rückgabeergebnis

Wird über das MTCoverageResult-Objekt zurückgegeben:

  • isAvailable: ob die Authentifizierung unterstützt wird
  • operatorCode: Carrier-Code; ignorieren Sie dieses Feld, es gibt standardmäßig leer zurück

Hinweise

  • Stellen Sie sicher, dass das SDK vor dem Aufruf initialisiert ist
  • Empfohlen, diese Methode vor dem Einleiten der Authentifizierung zur Abdeckungsprüfung aufzurufen
startAuthentication(phoneNumber:completion:)

Leitet die Rufnummernauthentifizierung ein.

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Parameter

Parameter Typ Beschreibung
phoneNumber String Rufnummer (Ländervorwahl + Rufnummer)
completion (MTAuthResult) -> Void Callback bei abgeschlossener Authentifizierung

Rückgabeergebnis

Wird über das MTAuthResult-Objekt zurückgegeben:

  • token: Authentifizierungs-Token, für die Backend-Verifizierung verwendet

Hinweise

  • Stellen Sie sicher, dass das SDK vor dem Aufruf initialisiert ist
  • Muss in einer Mobilfunknetzumgebung verwendet werden
  • Das erhaltene Token muss zur erneuten Verifizierung an das Backend übergeben werden

Enumerationen

MTEnvironment

Enum der SDK-Laufzeitumgebung.

@objc public enum MTEnvironment: Int { case sandbox = 0 // Sandbox-Umgebung (Testen) case production = 1 // Produktionsumgebung }
              
              @objc public enum MTEnvironment: Int {
    case sandbox = 0      // Sandbox-Umgebung (Testen)
    case production = 1   // Produktionsumgebung
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
Wert Beschreibung
.sandbox Sandbox-Testumgebung
.production Produktivumgebung

Ergebnistypen

MTSetupResult

Klasse für das Initialisierungsergebnis.

@objcMembers public class MTSetupResult: NSObject { /// Ergebniscode (0 für Erfolg, andere für Fehler) public let code: Int /// Beschreibungstext public let message: String /// Ob erfolgreich public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTSetupResult: NSObject {
    /// Ergebniscode (0 für Erfolg, andere für Fehler)
    public let code: Int
    
    /// Beschreibungstext
    public let message: String
    
    /// Ob erfolgreich
    public var isSuccess: Bool { return code == 0 }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
Eigenschaft Typ Beschreibung
code Int Ergebniscode; 0 bedeutet Erfolg
message String Beschreibungstext
isSuccess Bool Ob erfolgreich (berechnete Eigenschaft)

MTCoverageResult

Klasse für das Ergebnis der Abdeckungsprüfung.

@objcMembers public class MTCoverageResult: NSObject { /// Ergebniscode (0 für Erfolg, andere für Fehler) public let code: Int /// Beschreibungstext public let message: String /// Ob verfügbar public let isAvailable: Bool /// Carrier-Code public let operatorCode: String? /// Ob erfolgreich public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTCoverageResult: NSObject {
    /// Ergebniscode (0 für Erfolg, andere für Fehler)
    public let code: Int
    
    /// Beschreibungstext
    public let message: String
    
    /// Ob verfügbar
    public let isAvailable: Bool
    
    /// Carrier-Code
    public let operatorCode: String?
    
    /// Ob erfolgreich
    public var isSuccess: Bool { return code == 0 }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
Eigenschaft Typ Beschreibung
code Int Ergebniscode; 0 bedeutet Erfolg
message String Beschreibungstext
isAvailable Bool Ob die aktuelle Umgebung die Authentifizierung unterstützt
operatorCode String? Carrier-Code (z. B. "TELKOMSEL"); ignorieren Sie dieses Feld, es gibt standardmäßig leer zurück
isSuccess Bool Ob erfolgreich (berechnete Eigenschaft)

MTAuthResult

Klasse für das Authentifizierungsergebnis.

@objcMembers public class MTAuthResult: NSObject { /// Ergebniscode (0 für Erfolg, andere für Fehler) public let code: Int /// Beschreibungstext public let message: String /// Authentifizierungs-Token (für die Backend-Verifizierung) public let token: String? /// Ob erfolgreich public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTAuthResult: NSObject {
    /// Ergebniscode (0 für Erfolg, andere für Fehler)
    public let code: Int
    
    /// Beschreibungstext
    public let message: String
    
    /// Authentifizierungs-Token (für die Backend-Verifizierung)
    public let token: String?
    
    /// Ob erfolgreich
    public var isSuccess: Bool { return code == 0 }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
Eigenschaft Typ Beschreibung
code Int Ergebniscode; 0 bedeutet Erfolg
message String Beschreibungstext
token String? Authentifizierungs-Token, für die erneute Backend-Verifizierung
isSuccess Bool Ob erfolgreich (berechnete Eigenschaft)

Vollständiges Beispiel

Vollständiges Swift-Integrationsbeispiel

import UIKit import MTVerify class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Debug-Modus aktivieren MTVerifySDK.setDebug(true) // Das SDK initialisieren initializeSDK() } // MARK: - SDK-Initialisierung private func initializeSDK() { MTVerifySDK.setup( appKey: "your_app_key", environment: .production ) { [weak self] result in if result.isSuccess { print("✅ SDK-Initialisierung erfolgreich") print("SDK-Version: \(MTVerifySDK.version)") print("Initialisiert: \(MTVerifySDK.isInitialized)") } else { print("❌ SDK-Initialisierung fehlgeschlagen: \(result.message) (code: \(result.code))") } } } // MARK: - Abdeckung prüfen func checkCoverage(phoneNumber: String) { // Prüfen, ob das SDK initialisiert ist guard MTVerifySDK.isInitialized else { print("⚠️ SDK nicht initialisiert") return } MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in if result.isSuccess { if result.isAvailable { print("✅ Dienst verfügbar") print("Carrier: \(result.operatorCode ?? "Unbekannt")") } else { print("⚠️ Die aktuelle Umgebung unterstützt den Authentifizierungsdienst nicht") } } else { print("❌ Prüfung fehlgeschlagen: \(result.message) (code: \(result.code))") } } } // MARK: - Authentifizierung einleiten func authenticate(phoneNumber: String) { // Prüfen, ob das SDK initialisiert ist guard MTVerifySDK.isInitialized else { print("⚠️ SDK nicht initialisiert") return } MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in if result.isSuccess { print("✅ Authentifizierung erfolgreich") print("Token: \(result.token ?? "")") // TODO: Das Token zur Verifizierung an das Backend senden self.verifyTokenOnServer(token: result.token ?? "") } else { print("❌ Authentifizierung fehlgeschlagen: \(result.message) (code: \(result.code))") } } } // MARK: - Backend-Verifizierung private func verifyTokenOnServer(token: String) { // Das Token zur Verifizierung an Ihren Backend-Server senden // Das Backend verwendet das Token, um die MTVerify-Server-API zur Verifizierung der Rufnummer aufzurufen } }
              
              import UIKit
import MTVerify

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Debug-Modus aktivieren
        MTVerifySDK.setDebug(true)
        
        // Das SDK initialisieren
        initializeSDK()
    }
    
    // MARK: - SDK-Initialisierung
    
    private func initializeSDK() {
        MTVerifySDK.setup(
            appKey: "your_app_key",
            environment: .production
        ) { [weak self] result in
            if result.isSuccess {
                print("✅ SDK-Initialisierung erfolgreich")
                print("SDK-Version: \(MTVerifySDK.version)")
                print("Initialisiert: \(MTVerifySDK.isInitialized)")
            } else {
                print("❌ SDK-Initialisierung fehlgeschlagen: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Abdeckung prüfen
    
    func checkCoverage(phoneNumber: String) {
        // Prüfen, ob das SDK initialisiert ist
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK nicht initialisiert")
            return
        }
        
        MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                if result.isAvailable {
                    print("✅ Dienst verfügbar")
                    print("Carrier: \(result.operatorCode ?? "Unbekannt")")
                } else {
                    print("⚠️ Die aktuelle Umgebung unterstützt den Authentifizierungsdienst nicht")
                }
            } else {
                print("❌ Prüfung fehlgeschlagen: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Authentifizierung einleiten
    
    func authenticate(phoneNumber: String) {
        // Prüfen, ob das SDK initialisiert ist
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK nicht initialisiert")
            return
        }
        
        MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                print("✅ Authentifizierung erfolgreich")
                print("Token: \(result.token ?? "")")
                
                // TODO: Das Token zur Verifizierung an das Backend senden
                self.verifyTokenOnServer(token: result.token ?? "")
                
            } else {
                print("❌ Authentifizierung fehlgeschlagen: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Backend-Verifizierung
    
    private func verifyTokenOnServer(token: String) {
        // Das Token zur Verifizierung an Ihren Backend-Server senden
        // Das Backend verwendet das Token, um die MTVerify-Server-API zur Verifizierung der Rufnummer aufzurufen
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Versionsinformationen

  • SDK-Version: 1.0.1
Icon Solid Transparent White Qiyu
Vertrieb kontaktieren