iOS SDK 統合ガイド

概要

MTVerify iOS SDK は携帯電話番号認証 SDK であり、高速かつ安全なキャリアレベルの電話番号検証サービスを提供します。

主な機能

  • SDK 初期化:AppKey を使用して設定を自動取得し初期化します
  • カバレッジ確認:現在のネットワーク環境が認証サービスに対応しているか確認します
  • 番号認証:携帯電話番号認証を開始し、認証トークンを取得します

システム要件

  • iOS 12.0+
  • Xcode 14.0+

統合ガイド

手動統合

  1. MTVerify.xcframework をプロジェクトにドラッグします
  2. Target -> General -> Frameworks, Libraries, and Embedded Content で:
    • MTVerify.xcframeworkDo Not Embed に設定します

クイックスタート

Swift の例

import MTVerify // 1. デバッグモードを有効化(任意、開発段階での有効化を推奨) MTVerifySDK.setDebug(true) // 2. SDK を初期化 MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in if result.isSuccess { print("SDK 初期化成功") } else { print("SDK 初期化失敗: \(result.message)") } } // 3. カバレッジを確認 MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in if result.isSuccess && result.isAvailable { print("認証サービス利用可能、キャリア: \(result.operatorCode ?? "")") } } // 4. 認証を開始 MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in if result.isSuccess { print("認証成功、Token: \(result.token ?? "")") } }
              
              import MTVerify

// 1. デバッグモードを有効化(任意、開発段階での有効化を推奨)
MTVerifySDK.setDebug(true)

// 2. SDK を初期化
MTVerifySDK.setup(appKey: "your_app_key", environment: .production) { result in
    if result.isSuccess {
        print("SDK 初期化成功")
    } else {
        print("SDK 初期化失敗: \(result.message)")
    }
}

// 3. カバレッジを確認
MTVerifySDK.checkCoverage(phoneNumber: "6281234567890") { result in
    if result.isSuccess && result.isAvailable {
        print("認証サービス利用可能、キャリア: \(result.operatorCode ?? "")")
    }
}

// 4. 認証を開始
MTVerifySDK.startAuthentication(phoneNumber: "6281234567890") { result in
    if result.isSuccess {
        print("認証成功、Token: \(result.token ?? "")")
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

Objective-C の例

@import MTVerify; // 1. デバッグモードを有効化(任意) [MTVerifySDK setDebug:YES]; // 2. SDK を初期化 [MTVerifySDK setupWithAppKey:@"your_app_key" environment:MTEnvironmentProduction completion:^(MTSetupResult *result) { if (result.isSuccess) { NSLog(@"SDK 初期化成功"); } else { NSLog(@"SDK 初期化失敗: %@", result.message); } }]; // 3. カバレッジを確認 [MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" completion:^(MTCoverageResult *result) { if (result.isSuccess && result.isAvailable) { NSLog(@"認証サービス利用可能、キャリア: %@", result.operatorCode); } }]; // 4. 認証を開始 [MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" completion:^(MTAuthResult *result) { if (result.isSuccess) { NSLog(@"認証成功、Token: %@", result.token); } }];
              
              @import MTVerify;

// 1. デバッグモードを有効化(任意)
[MTVerifySDK setDebug:YES];

// 2. SDK を初期化
[MTVerifySDK setupWithAppKey:@"your_app_key" 
                 environment:MTEnvironmentProduction 
                  completion:^(MTSetupResult *result) {
    if (result.isSuccess) {
        NSLog(@"SDK 初期化成功");
    } else {
        NSLog(@"SDK 初期化失敗: %@", result.message);
    }
}];

// 3. カバレッジを確認
[MTVerifySDK checkCoverageWithPhoneNumber:@"6281234567890" 
                               completion:^(MTCoverageResult *result) {
    if (result.isSuccess && result.isAvailable) {
        NSLog(@"認証サービス利用可能、キャリア: %@", result.operatorCode);
    }
}];

// 4. 認証を開始
[MTVerifySDK startAuthenticationWithPhoneNumber:@"6281234567890" 
                                     completion:^(MTAuthResult *result) {
    if (result.isSuccess) {
        NSLog(@"認証成功、Token: %@", result.token);
    }
}];

            
このコードブロックはフローティングウィンドウ内に表示されます

API リファレンス

MTVerifySDK クラス

MTVerifySDK は SDK のコアクラスであり、認証に関するすべての機能を提供します。

プロパティ

プロパティ 説明
version String SDK バージョン番号(読み取り専用、クラスプロパティ)
isInitialized Bool SDK が初期化済みかどうか(読み取り専用、クラスプロパティ)

メソッド

setDebug(_:)

デバッグモードを設定します。有効にすると詳細なログが出力されます。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータ

パラメータ 説明
enabled Bool デバッグモードを有効にするかどうか

説明

  • 開発・テスト段階での有効化を推奨
  • リリース版では無効化を推奨
isDebug()

現在のデバッグモードの状態を取得します。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

戻り値

Bool - デバッグモードが有効かどうか

setup(appKey:environment:completion:)

SDK を初期化します。AppKey を使用してサーバーから設定を自動取得し、初期化を完了します。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータ

パラメータ 説明
appKey String アプリの AppKey。コンソールから取得
environment MTEnvironment 実行環境。デフォルトは .production
completion (MTSetupResult) -> Void 初期化完了コールバック

注意事項

  • 他の API を呼び出す前に初期化を完了する必要があります
  • 初期化は非同期処理です。成功したかどうかはコールバックで確認してください
  • AppDelegate またはアプリ起動時に呼び出すことを推奨します
checkCoverage(phoneNumber:completion:)

現在のネットワーク環境が認証サービスに対応しているか確認します。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータ

パラメータ 説明
phoneNumber String 携帯電話番号(国コード + 電話番号)
completion (MTCoverageResult) -> Void 確認完了コールバック

返却結果

MTCoverageResult オブジェクトを通じて返されます:

  • isAvailable:認証に対応しているかどうか
  • operatorCode:キャリアコード。このフィールドは無視してください。デフォルトで空を返します

注意事項

  • 呼び出す前に SDK が初期化済みであることを確認してください
  • 認証を開始する前に、このメソッドを呼び出してカバレッジを確認することを推奨します
startAuthentication(phoneNumber:completion:)

携帯電話番号認証を開始します。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータ

パラメータ 説明
phoneNumber String 携帯電話番号(国コード + 電話番号)
completion (MTAuthResult) -> Void 認証完了コールバック

返却結果

MTAuthResult オブジェクトを通じて返されます:

  • token:認証トークン。バックエンド検証に使用

注意事項

  • 呼び出す前に SDK が初期化済みであることを確認してください
  • セルラーネットワーク環境で使用する必要があります
  • 取得したトークンはバックエンドに渡して二次検証する必要があります

列挙型

MTEnvironment

SDK 実行環境の列挙。

@objc public enum MTEnvironment: Int { case sandbox = 0 // サンドボックス環境(テスト) case production = 1 // 本番環境 }
              
              @objc public enum MTEnvironment: Int {
    case sandbox = 0      // サンドボックス環境(テスト)
    case production = 1   // 本番環境
}

            
このコードブロックはフローティングウィンドウ内に表示されます
説明
.sandbox サンドボックステスト環境
.production 本番環境

結果型

MTSetupResult

初期化結果クラス。

@objcMembers public class MTSetupResult: NSObject { /// 結果コード(0 は成功、その他は失敗) public let code: Int /// 説明メッセージ public let message: String /// 成功かどうか public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTSetupResult: NSObject {
    /// 結果コード(0 は成功、その他は失敗)
    public let code: Int
    
    /// 説明メッセージ
    public let message: String
    
    /// 成功かどうか
    public var isSuccess: Bool { return code == 0 }
}

            
このコードブロックはフローティングウィンドウ内に表示されます
プロパティ 説明
code Int 結果コード。0 は成功
message String 説明メッセージ
isSuccess Bool 成功かどうか(計算プロパティ)

MTCoverageResult

カバレッジ確認結果クラス。

@objcMembers public class MTCoverageResult: NSObject { /// 結果コード(0 は成功、その他は失敗) public let code: Int /// 説明メッセージ public let message: String /// 利用可能かどうか public let isAvailable: Bool /// キャリアコード public let operatorCode: String? /// 成功かどうか public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTCoverageResult: NSObject {
    /// 結果コード(0 は成功、その他は失敗)
    public let code: Int
    
    /// 説明メッセージ
    public let message: String
    
    /// 利用可能かどうか
    public let isAvailable: Bool
    
    /// キャリアコード
    public let operatorCode: String?
    
    /// 成功かどうか
    public var isSuccess: Bool { return code == 0 }
}

            
このコードブロックはフローティングウィンドウ内に表示されます
プロパティ 説明
code Int 結果コード。0 は成功
message String 説明メッセージ
isAvailable Bool 現在の環境が認証に対応しているかどうか
operatorCode String? キャリアコード(例: "TELKOMSEL")。このフィールドは無視してください。デフォルトで空を返します
isSuccess Bool 成功かどうか(計算プロパティ)

MTAuthResult

認証結果クラス。

@objcMembers public class MTAuthResult: NSObject { /// 結果コード(0 は成功、その他は失敗) public let code: Int /// 説明メッセージ public let message: String /// 認証トークン(バックエンド検証に使用) public let token: String? /// 成功かどうか public var isSuccess: Bool { return code == 0 } }
              
              @objcMembers
public class MTAuthResult: NSObject {
    /// 結果コード(0 は成功、その他は失敗)
    public let code: Int
    
    /// 説明メッセージ
    public let message: String
    
    /// 認証トークン(バックエンド検証に使用)
    public let token: String?
    
    /// 成功かどうか
    public var isSuccess: Bool { return code == 0 }
}

            
このコードブロックはフローティングウィンドウ内に表示されます
プロパティ 説明
code Int 結果コード。0 は成功
message String 説明メッセージ
token String? 認証トークン。バックエンドでの二次検証に使用
isSuccess Bool 成功かどうか(計算プロパティ)

完全な例

Swift の完全な統合例

import UIKit import MTVerify class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // デバッグモードを有効化 MTVerifySDK.setDebug(true) // SDK を初期化 initializeSDK() } // MARK: - SDK 初期化 private func initializeSDK() { MTVerifySDK.setup( appKey: "your_app_key", environment: .production ) { [weak self] result in if result.isSuccess { print("✅ SDK 初期化成功") print("SDK バージョン: \(MTVerifySDK.version)") print("初期化済み: \(MTVerifySDK.isInitialized)") } else { print("❌ SDK 初期化失敗: \(result.message) (code: \(result.code))") } } } // MARK: - カバレッジ確認 func checkCoverage(phoneNumber: String) { // SDK が初期化済みか確認 guard MTVerifySDK.isInitialized else { print("⚠️ SDK が初期化されていません") return } MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in if result.isSuccess { if result.isAvailable { print("✅ サービス利用可能") print("キャリア: \(result.operatorCode ?? "不明")") } else { print("⚠️ 現在の環境は認証サービスに対応していません") } } else { print("❌ 確認失敗: \(result.message) (code: \(result.code))") } } } // MARK: - 認証開始 func authenticate(phoneNumber: String) { // SDK が初期化済みか確認 guard MTVerifySDK.isInitialized else { print("⚠️ SDK が初期化されていません") return } MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in if result.isSuccess { print("✅ 認証成功") print("Token: \(result.token ?? "")") // TODO: token をバックエンドに送信して検証 self.verifyTokenOnServer(token: result.token ?? "") } else { print("❌ 認証失敗: \(result.message) (code: \(result.code))") } } } // MARK: - バックエンド検証 private func verifyTokenOnServer(token: String) { // token をバックエンドサーバーに送信して検証 // バックエンドは token を使用して MTVerify サーバー API を呼び出し、電話番号を検証します } }
              
              import UIKit
import MTVerify

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // デバッグモードを有効化
        MTVerifySDK.setDebug(true)
        
        // SDK を初期化
        initializeSDK()
    }
    
    // MARK: - SDK 初期化
    
    private func initializeSDK() {
        MTVerifySDK.setup(
            appKey: "your_app_key",
            environment: .production
        ) { [weak self] result in
            if result.isSuccess {
                print("✅ SDK 初期化成功")
                print("SDK バージョン: \(MTVerifySDK.version)")
                print("初期化済み: \(MTVerifySDK.isInitialized)")
            } else {
                print("❌ SDK 初期化失敗: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - カバレッジ確認
    
    func checkCoverage(phoneNumber: String) {
        // SDK が初期化済みか確認
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK が初期化されていません")
            return
        }
        
        MTVerifySDK.checkCoverage(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                if result.isAvailable {
                    print("✅ サービス利用可能")
                    print("キャリア: \(result.operatorCode ?? "不明")")
                } else {
                    print("⚠️ 現在の環境は認証サービスに対応していません")
                }
            } else {
                print("❌ 確認失敗: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - 認証開始
    
    func authenticate(phoneNumber: String) {
        // SDK が初期化済みか確認
        guard MTVerifySDK.isInitialized else {
            print("⚠️ SDK が初期化されていません")
            return
        }
        
        MTVerifySDK.startAuthentication(phoneNumber: phoneNumber) { result in
            if result.isSuccess {
                print("✅ 認証成功")
                print("Token: \(result.token ?? "")")
                
                // TODO: token をバックエンドに送信して検証
                self.verifyTokenOnServer(token: result.token ?? "")
                
            } else {
                print("❌ 認証失敗: \(result.message) (code: \(result.code))")
            }
        }
    }
    
    // MARK: - バックエンド検証
    
    private func verifyTokenOnServer(token: String) {
        // token をバックエンドサーバーに送信して検証
        // バックエンドは token を使用して MTVerify サーバー API を呼び出し、電話番号を検証します
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

バージョン情報

  • SDK バージョン:1.0.1
Icon Solid Transparent White Qiyu
お問い合わせ