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
- Seret
MTVerify.xcframeworkke dalam proyek Anda - 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 ?? "")")
}
}
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);
}
}];
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)
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
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)
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
AppDelegateatau saat aplikasi diluncurkan
checkCoverage(phoneNumber:completion:)
Memeriksa apakah lingkungan jaringan saat ini mendukung layanan autentikasi.
static func checkCoverage(phoneNumber: String,
completion: @escaping (MTCoverageResult) -> Void)
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 didukungoperatorCode: 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)
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
}
| 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 }
}
| 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 }
}
| 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 }
}
| 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
}
}
Informasi Versi
- Versi SDK: 1.0.1










