Panduan Integrasi SDK iOS

Ikhtisar

SDK iOS MTVerify adalah SDK autentikasi nomor ponsel yang menyediakan verifikasi nomor telepon yang cepat, aman, dan tingkat operator.

Fitur Utama

  • Inisialisasi SDK: Mengambil konfigurasi secara otomatis dan menginisialisasi melalui AppKey
  • Pemeriksaan cakupan: Memeriksa apakah lingkungan jaringan saat ini mendukung layanan autentikasi
  • Autentikasi nomor: Memulai autentikasi nomor ponsel dan memperoleh token autentikasi

Persyaratan Sistem

  • iOS 12.0+
  • Xcode 14.0+

Panduan Integrasi

Integrasi Manual

  1. Seret MTVerify.xcframework ke dalam proyek Anda
  2. Di Target -> General -> Frameworks, Libraries, and Embedded Content:
    • MTVerify.xcframework: atur ke Do Not Embed

Mulai Cepat

Contoh Swift

import MTVerify // 1. Aktifkan mode debug (opsional, disarankan saat pengembangan) MTVerifySDK.setDebug(true) // 2. Inisialisasi SDK MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in if result.isSuccess { print("Inisialisasi SDK berhasil") } else { print("Inisialisasi SDK gagal: \(result.message)") } } // 3. Periksa cakupan MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in if result.isSuccess && result.isAvailable { print("Layanan autentikasi tersedia, operator: \(result.operatorCode ?? "")") } } // 4. Mulai autentikasi MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in if result.isSuccess { print("Autentikasi berhasil, Token: \(result.token ?? "")") } }
              
              import MTVerify

// 1. Aktifkan mode debug (opsional, disarankan saat pengembangan)
MTVerifySDK.setDebug(true)

// 2. Inisialisasi SDK
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
    if result.isSuccess {
        print("Inisialisasi SDK berhasil")
    } else {
        print("Inisialisasi SDK gagal: \(result.message)")
    }
}

// 3. Periksa cakupan
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
    if result.isSuccess && result.isAvailable {
        print("Layanan autentikasi tersedia, operator: \(result.operatorCode ?? "")")
    }
}

// 4. Mulai autentikasi
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
    if result.isSuccess {
        print("Autentikasi berhasil, Token: \(result.token ?? "")")
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Contoh Objective-C

@import MTVerify; // 1. Aktifkan mode debug (opsional) [MTVerifySDK setDebug:YES]; // 2. Inisialisasi SDK [MTVerifySDK setupWithAppKey:@"your_app_key" environment:MTEnvironmentProduction completion:^(MTSetupResult *result) { if (result.isSuccess) { NSLog(@"Inisialisasi SDK berhasil"); } else { NSLog(@"Inisialisasi SDK gagal: %@", result.message); } }]; // 3. Periksa cakupan [MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" completion:^(MTCoverageResult *result) { if (result.isSuccess && result.isAvailable) { NSLog(@"Layanan autentikasi tersedia, operator: %@", result.operatorCode); } }]; // 4. Mulai autentikasi [MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" completion:^(MTAuthResult *result) { if (result.isSuccess) { NSLog(@"Autentikasi berhasil, Token: %@", result.token); } }];
              
              @import MTVerify;

// 1. Aktifkan mode debug (opsional)
[MTVerifySDK setDebug:YES];

// 2. Inisialisasi SDK
[MTVerifySDK setupWithAppKey:@"your_app_key" 
                 environment:MTEnvironmentProduction 
                  completion:^(MTSetupResult *result) {
    if (result.isSuccess) {
        NSLog(@"Inisialisasi SDK berhasil");
    } else {
        NSLog(@"Inisialisasi SDK gagal: %@", result.message);
    }
}];

// 3. Periksa cakupan
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" 
                               completion:^(MTCoverageResult *result) {
    if (result.isSuccess && result.isAvailable) {
        NSLog(@"Layanan autentikasi tersedia, operator: %@", result.operatorCode);
    }
}];

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

            
Tampilkan blok kode ini di jendela mengambang

Referensi API

Kelas MTVerifySDK

MTVerifySDK adalah kelas inti SDK dan menyediakan semua fitur terkait autentikasi.

Properti

Properti Tipe Deskripsi
version String Nomor versi SDK (hanya-baca, properti kelas)
isInitialized Bool Apakah SDK telah diinisialisasi (hanya-baca, properti kelas)

Metode

setDebug(_:)

Mengatur mode debug; saat diaktifkan, log terperinci akan ditampilkan.

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter

Parameter Tipe Deskripsi
enabled Bool Apakah akan mengaktifkan mode debug

Catatan

  • Disarankan untuk diaktifkan saat pengembangan dan pengujian
  • Disarankan untuk dinonaktifkan pada versi rilis
isDebug()

Mendapatkan status mode debug saat ini.

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

            
Tampilkan blok kode ini di jendela mengambang

Nilai Kembalian

Bool - Apakah mode debug diaktifkan

setup(appKey:environment:completion:)

Menginisialisasi SDK. Menggunakan AppKey untuk mengambil konfigurasi secara otomatis dari server dan menyelesaikan inisialisasi.

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter

Parameter Tipe Deskripsi
appKey String AppKey aplikasi, diperoleh dari konsol
environment MTEnvironment Lingkungan runtime, default .production
completion (MTSetupResult) -> Void Callback saat inisialisasi selesai

Catatan

  • Inisialisasi harus diselesaikan sebelum memanggil API lain
  • Inisialisasi adalah operasi asinkron; konfirmasikan keberhasilan di callback
  • Disarankan untuk dipanggil di AppDelegate atau saat aplikasi diluncurkan
checkCoverage(phoneNumber:completion:)

Memeriksa apakah lingkungan jaringan saat ini mendukung layanan autentikasi.

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter

Parameter Tipe Deskripsi
phoneNumber String Nomor ponsel (kode negara + nomor telepon)
completion (MTCoverageResult) -> Void Callback saat pemeriksaan selesai

Hasil yang Dikembalikan

Dikembalikan melalui objek MTCoverageResult:

  • isAvailable: apakah autentikasi didukung
  • operatorCode: kode operator; abaikan bidang ini, secara default mengembalikan kosong

Catatan

  • Pastikan SDK telah diinisialisasi sebelum memanggil
  • Disarankan untuk memanggil metode ini guna memeriksa cakupan sebelum memulai autentikasi
startAuthentication(phoneNumber:completion:)

Memulai autentikasi nomor ponsel.

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter

Parameter Tipe Deskripsi
phoneNumber String Nomor ponsel (kode negara + nomor telepon)
completion (MTAuthResult) -> Void Callback saat autentikasi selesai

Hasil yang Dikembalikan

Dikembalikan melalui objek MTAuthResult:

  • token: token autentikasi, digunakan untuk verifikasi backend

Catatan

  • Pastikan SDK telah diinisialisasi sebelum memanggil
  • Harus digunakan dalam lingkungan jaringan seluler
  • Token yang diperoleh harus diteruskan ke backend untuk verifikasi kedua

Enumerasi

MTEnvironment

Enum lingkungan runtime SDK.

@objc public enum MTEnvironment: Int { case sandbox = 0 // Lingkungan sandbox (pengujian) case production = 1 // Lingkungan produksi }
              
              @objc public enum MTEnvironment: Int {
    case sandbox = 0      // Lingkungan sandbox (pengujian)
    case production = 1   // Lingkungan produksi
}

            
Tampilkan blok kode ini di jendela mengambang
Nilai Deskripsi
.sandbox Lingkungan pengujian sandbox
.production Lingkungan produksi

Tipe Hasil

MTSetupResult

Kelas hasil inisialisasi.

@objcMembers public class MTSetupResult: NSObject { /// Kode hasil (0 untuk berhasil, lainnya untuk gagal) public let code: Int /// Pesan deskripsi public let message: String /// Apakah berhasil public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTSetupResult: NSObject {
    /// Kode hasil (0 untuk berhasil, lainnya untuk gagal)
    public let code: Int
    
    /// Pesan deskripsi
    public let message: String
    
    /// Apakah berhasil
    public var isSuccess: Bool { return code == 0 }
}

            
Tampilkan blok kode ini di jendela mengambang
Properti Tipe Deskripsi
code Int Kode hasil; 0 berarti berhasil
message String Pesan deskripsi
isSuccess Bool Apakah berhasil (properti terhitung)

MTCoverageResult

Kelas hasil pemeriksaan cakupan.

@objcMembers public class MTCoverageResult: NSObject { /// Kode hasil (0 untuk berhasil, lainnya untuk gagal) public let code: Int /// Pesan deskripsi public let message: String /// Apakah tersedia public let isAvailable: Bool /// Kode operator public let operatorCode: String? /// Apakah berhasil public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTCoverageResult: NSObject {
    /// Kode hasil (0 untuk berhasil, lainnya untuk gagal)
    public let code: Int
    
    /// Pesan deskripsi
    public let message: String
    
    /// Apakah tersedia
    public let isAvailable: Bool
    
    /// Kode operator
    public let operatorCode: String?
    
    /// Apakah berhasil
    public var isSuccess: Bool { return code == 0 }
}

            
Tampilkan blok kode ini di jendela mengambang
Properti Tipe Deskripsi
code Int Kode hasil; 0 berarti berhasil
message String Pesan deskripsi
isAvailable Bool Apakah lingkungan saat ini mendukung autentikasi
operatorCode String? Kode operator (mis. "TELKOMSEL"); abaikan bidang ini, secara default mengembalikan kosong
isSuccess Bool Apakah berhasil (properti terhitung)

MTAuthResult

Kelas hasil autentikasi.

@objcMembers public class MTAuthResult: NSObject { /// Kode hasil (0 untuk berhasil, lainnya untuk gagal) public let code: Int /// Pesan deskripsi public let message: String /// Token autentikasi (digunakan untuk verifikasi backend) public let token: String? /// Apakah berhasil public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTAuthResult: NSObject {
    /// Kode hasil (0 untuk berhasil, lainnya untuk gagal)
    public let code: Int
    
    /// Pesan deskripsi
    public let message: String
    
    /// Token autentikasi (digunakan untuk verifikasi backend)
    public let token: String?
    
    /// Apakah berhasil
    public var isSuccess: Bool { return code == 0 }
}

            
Tampilkan blok kode ini di jendela mengambang
Properti Tipe Deskripsi
code Int Kode hasil; 0 berarti berhasil
message String Pesan deskripsi
token String? Token autentikasi, digunakan untuk verifikasi kedua di backend
isSuccess Bool Apakah berhasil (properti terhitung)

Contoh Lengkap

Contoh Lengkap Integrasi Swift

import UIKit import MTVerify class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Aktifkan mode debug MTVerifySDK.setDebug(true) // Inisialisasi SDK initializeSDK() } // MARK: - Inisialisasi SDK private func initializeSDK() { MTVerifySDK.setup( appKey: "your_app_key", environment: .production ) { [weak self] result in if result.isSuccess { print("✅ Inisialisasi SDK berhasil") print("Versi SDK: \(MTVerifySDK.version)") print("Terinisialisasi: \(MTVerifySDK.isInitialized)") } else { print("❌ Inisialisasi SDK gagal: \(result.message) (code: \(result.code))") } } } // MARK: - Periksa Cakupan func checkCoverage(phoneNumber: String) { // Periksa apakah SDK telah diinisialisasi guard MTVerifySDK.isInitialized else { print("⚠️ SDK belum diinisialisasi") return } MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in if result.isSuccess { if result.isAvailable { print("✅ Layanan tersedia") print("Operator: \(result.operatorCode ?? "Tidak diketahui")") } else { print("⚠️ Lingkungan saat ini tidak mendukung layanan autentikasi") } } else { print("❌ Pemeriksaan gagal: \(result.message) (code: \(result.code))") } } } // MARK: - Mulai Autentikasi func authenticate(phoneNumber: String) { // Periksa apakah SDK telah diinisialisasi guard MTVerifySDK.isInitialized else { print("⚠️ SDK belum diinisialisasi") return } MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in if result.isSuccess { print("✅ Autentikasi berhasil") print("Token: \(result.token ?? "")") // TODO: Kirim token ke backend untuk verifikasi self.verifyTokenOnServer(token: result.token ?? "") } else { print("❌ Autentikasi gagal: \(result.message) (code: \(result.code))") } } } // MARK: - Verifikasi Backend private func verifyTokenOnServer(token: String) { // Kirim token ke server backend Anda untuk verifikasi // Backend menggunakan token untuk memanggil API server MTVerify guna memverifikasi nomor telepon } }
              
              import UIKit
import MTVerify

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Aktifkan mode debug
        MTVerifySDK.setDebug(true)
        
        // Inisialisasi SDK
        initializeSDK()
    }
    
    // MARK: - Inisialisasi SDK
    
    private func initializeSDK() {
        MTVerifySDK.setup(
            appKey: "your_app_key",
            environment: .production
        ) { [weak self] result in
            if result.isSuccess {
                print("✅ Inisialisasi SDK berhasil")
                print("Versi SDK: \(MTVerifySDK.version)")
                print("Terinisialisasi: \(MTVerifySDK.isInitialized)")
            } else {
                print("❌ Inisialisasi SDK gagal: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Periksa Cakupan
    
    func checkCoverage(phoneNumber: String) {
        // Periksa apakah SDK telah diinisialisasi
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK belum diinisialisasi")
            return
        }
        
        MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                if result.isAvailable {
                    print("✅ Layanan tersedia")
                    print("Operator: \(result.operatorCode ?? "Tidak diketahui")")
                } else {
                    print("⚠️ Lingkungan saat ini tidak mendukung layanan autentikasi")
                }
            } else {
                print("❌ Pemeriksaan gagal: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Mulai Autentikasi
    
    func authenticate(phoneNumber: String) {
        // Periksa apakah SDK telah diinisialisasi
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK belum diinisialisasi")
            return
        }
        
        MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                print("✅ Autentikasi berhasil")
                print("Token: \(result.token ?? "")")
                
                // TODO: Kirim token ke backend untuk verifikasi
                self.verifyTokenOnServer(token: result.token ?? "")
                
            } else {
                print("❌ Autentikasi gagal: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - Verifikasi Backend
    
    private func verifyTokenOnServer(token: String) {
        // Kirim token ke server backend Anda untuk verifikasi
        // Backend menggunakan token untuk memanggil API server MTVerify guna memverifikasi nomor telepon
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Informasi Versi

  • Versi SDK: 1.0.1
Icon Solid Transparent White Qiyu
Hubungi Sales