iOS SDK 統合ガイド
概要
MTVerify iOS SDK は携帯電話番号認証 SDK であり、高速かつ安全なキャリアレベルの電話番号検証サービスを提供します。
主な機能
- SDK 初期化:AppKey を使用して設定を自動取得し初期化します
- カバレッジ確認:現在のネットワーク環境が認証サービスに対応しているか確認します
- 番号認証:携帯電話番号認証を開始し、認証トークンを取得します
システム要件
- iOS 12.0+
- Xcode 14.0+
統合ガイド
手動統合
MTVerify.xcframeworkをプロジェクトにドラッグします- Target -> General -> Frameworks, Libraries, and Embedded Content で:
MTVerify.xcframework:Do 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










