すべてのプロダクト
Search
ドキュメントセンター

ID Verification:iOS との統合

最終更新日:Nov 25, 2025

ID Verification は、iOS プラットフォーム向けのソフトウェア開発キット (SDK) を提供します。この SDK は、モバイルアプリケーションに電子的な顧客確認 (eKYC) リモート本人確認機能を実装するのに役立ちます。サーバーから一意の識別子 (transactionId) をリクエストして受信した後、この識別子を SDK に渡して対応する機能を呼び出すことができます。このトピックでは、コード例を使用して iOS の統合プロセスについて説明します。

制限

  • iOS 9 以降を実行するモバイルデバイス (iPhone または iPad) をサポートします。

  • 必要なプライバシー権限: カメラとネットワーク。

SDK のダウンロードと構成

SDK の取得

iOS SDK をダウンロードして解凍し、すべてのフレームワークをプロジェクトフォルダにコピーします。

必要な権限の追加

Info.plist ファイルに次の権限を追加します。権限の説明は参照用です。

image

Xcode でのフレームワークの追加

プロジェクト設定で、[Build Settings] > [Build Phases] > [Link Binary With Libraries] に移動し、フレームワークを追加します。

  • SDK からすべてのフレームワークを追加します。

    AliyunIdentityFace.framework
    AliyunIdentityPlatform.framework
    AliyunIdentityUtils.framework
    AliyunIdentityOcr.framework
    ToygerService.framework
    AliyunOSSiOS.framework
    faceguard.framework
    DTFUtility.framework
    ToygerNative.framework
    MNN.framework
  • システム依存関係を追加します。

    AudioToolbox.framework
    CoreMedia.framework
    CoreML.framework
    AVFoundation.framework
    SystemConfiguration.framework
    UIKit.framework
    CoreTelephony.framework
    CoreMotion.framework
    Accelerate.framework
    libresolv.tbd
    libsqlite3.tbd
    libc++.tbd
    libz.tbd

リソースファイルのコピー

プロジェクト設定で、[Build Settings] > [Build Phases] > [Copy Bundle Resources] に移動し、リソースファイルをコピーします。

  • AliyunIdentityPlatform.bundle: リソースファイルは AliyunIdentityPlatform.framework 内にあります。

  • AliyunIdentityFace.bundle: リソースファイルは AliyunIdentityFace.framework 内にあります。

  • AliyunIdentityOCR.bundle: リソースファイルは AliyunIdentityOcr.framework 内にあります。

  • ToygerService.bundle: リソースファイルは ToygerService.framework 内にあります。

リンカーフラグの構成

プロジェクト設定で、[Build Settings] > [Other Linker Flags] に移動し、[-ObjC] フラグを追加します。

SDK の呼び出し

ヘッダーファイルのインポート

#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>

SDK の初期化

- (void)install;
- (void)installWithOptions:(NSMutableDictionary *)options;

パラメーター:

options: 情報収集のオプションパラメーターを指定します。このパラメーターはオプションです。オプションのパラメーターは次のとおりです。

説明
  • ID Verification クライアントには、Device Guard セキュリティモジュールが組み込まれています。さまざまなリージョンでのデータ収集コンプライアンス要件を満たすために、さまざまなデータレポートサイトを提供します。ユーザー属性に基づいてレポートサイトを指定するために、CustomUrl と CustomHost を設定できます。

    注: 1 つのアプリケーションセッションのライフサイクル内で指定できるレポートサイトは 1 つだけです。サーバークエリリージョンはレポートサイトと一致する必要があります。

  • レポートサイトの指定:

    • シンガポールサイト (デフォルト): https://cloudauth-device.ap-southeast-1.aliyuncs.com

    • インドネシアサイト: https://cloudauth-device.ap-southeast-5.aliyuncs.com

    • 米国西部 (シリコンバレー): https://cloudauth-device.us-west-1.aliyuncs.com

    • ドイツ (フランクフルト): https://cloudauth-device.eu-central-1.aliyuncs.com

    • 中国 (香港): https://cloudauth-device.cn-hongkong.aliyuncs.com

  • プロダクトサーバーでサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。

フィールド名

説明

IPv6

デバイス情報をレポートするために IPv6 ドメイン名を使用するかどうかを指定します。

  • 0 (デフォルト): いいえ (IPv4 ドメイン名を使用)

  • 1: はい (IPv6 ドメイン名を使用)

"1"

DataSwitch

デバイス情報をレポートするタイミング。

  • 0 (デフォルト): 初期化時

  • 1: トークン取得時

説明

デフォルトの構成を使用することをお勧めします。

"1"

CustomUrl

データレポートサーバーのドメイン名を設定します。

"https://cloudauth-device.ap-southeast-1.aliyuncs.com"

CustomHost

データレポートサーバーのホストを設定します。

"cloudauth-device.ap-southeast-1.aliyuncs.com

metaInfo データの取得

- (NSString *)getMetaInfo;

アプリケーションサーバーは、Alibaba Cloud 初期化 API を呼び出す前に、クライアントから metaInfo を取得する必要があります。

したがって、クライアントはまずネイティブの metaInfo データを取得する必要があります。次に、この metaInfo を使用して初期化プロセスを完了し、transactionId を取得します。

SDK を呼び出して検証を開始

- (void)verifyWithCertifyId:(NSString *)certifyId
  withCurrentViewController:(UIViewController *)viewController
              withExtParams:(NSDictionary *)extParams
                   complete:(AliyunIdentityVerifyBlock)completeBlock;

パラメーター

名前

タイプ

説明

transactionId

NSString

サーバー側の Initialize API から取得します。

viewController

UIViewController

クライアントアプリケーションの現在の ViewController。

extParams

NSDictionary

拡張パラメーター。ほとんどの場合、このパラメーターを null に設定します。

ユーザー定義のパラメーター。ほとんどの場合、null を渡すことができます。サポートされているパラメーターフィールドの詳細については、「extParams の構成」をご参照ください。

completeBlock

AliyunIdentityVerifyBlock

検証プロセスの最後に呼び出されるコールバック。検証結果が含まれます。

extParams の構成

キー

説明

例 (文字列)

kIdentityParamKeyNextButtonColor

OCR 結果ページの下部にあるボタンの色。

#FF0000

kIdentityParamKeyRoundProgressColor

顔スキャン中の円の色。

#FF0000

kIdentityParamKeyOcrSelectPhoto

証明書 OCR 中にアルバムアップロードエントリを表示するかどうかを指定します。

  • 1 (デフォルト): 表示します。

  • 0: 表示しません。

1

kIdentityParamKeyShowOcrResult

証明書 OCR 後に結果ページを表示するかどうかを指定します。

  • 1 (デフォルト): 表示します。

  • 0: 表示しません。

1

kIdentityParamKeyEditOcrResult

OCR 結果ページが編集可能かどうかを指定します。

  • 0: 編集不可。

  • 1 (デフォルト): 編集可能。

1

kIdentityParamKeyMaxRetryCount

最大リトライ回数。値は 3 から 10 の範囲で指定できます。デフォルト値は 10 です。

10

kIdentityParamKeyCardOcrTimeOutPeriod

OCR ステップのタイムアウト期間。値は 20 から 60 秒の範囲で指定できます。デフォルト値は 20 秒です。

20

kIdentityParamKeyFaceVerifyTimeOutPeriod

生体情報収集ステップのタイムアウト期間。値は 20 から 60 秒の範囲で指定できます。デフォルト値は 20 秒です。

20

kIdentityParamKeyCardOcrEditTimeOutPeriod

OCR 結果ページが編集可能な期間。60 から 180 秒の範囲でカスタム値を設定できます。デフォルトでは制限はありません。

180

kIdentityParamKeyLanguage

SDK のカスタム言語設定。デフォルトでは、SDK はモバイルデバイスのオペレーティングシステムの言語を使用します。

説明

SDK でサポートされている言語のリストについては、「Android および iOS SDK のカスタム言語」をご参照ください。

zh-Hans

kIdentityParamKeyDefaultLanguage

SDK のデフォルト言語。有効な値については、kIdentityParamKeyLanguage フィールドをご参照ください。

デフォルト値は en (英語) です。

en

kIdentityParamKeyCloseButtonPosition

SDK の閉じるボタンの位置。

  • left: 左側 (デフォルト)。

  • right: 右側。

left

kIdentityParamKeyWatermark

OCR 成功後のウォーターマークテキスト。

テストウォーターマークテキスト

kIdentityParamKeyProtocol

SDK プロトコル。

説明

サーバー側の Initialize API から protocol を取得し、拡張パラメーターで渡します。これにより、内部 SDK API のインタラクションが減り、ネットワークパフォーマンスが向上します。

968412EB*******...

エラーコード

エラーコード

課金対象

結果コードの説明

1000

はい

ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「成功」です。この結果は参照用です。サーバー側の CheckResult API を呼び出して最終的な検証結果を取得し、さらなる処理を行います。

1001

はい

ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「失敗」です。この結果は参照用です。サーバー側の CheckResult API を呼び出して最終的な検証結果と失敗の詳細な理由を取得し、さらなる処理を行います。

1002

いいえ

システムエラーが発生しました。

1003

いいえ

SDK の初期化に失敗しました。

1004

いいえ

カメラエラーが発生しました。問題を解決するには、次のステップを試してください:

  1. 検証の前に、アプリケーションにカメラの権限があることを確認してください。

  2. 権限を付与しても権限エラーが続く場合は、アプリケーションのキャッシュをクリアして再試行してください。

1005

いいえ

ネットワークエラーが発生しました。

1006

いいえ

ユーザーがプロセスを終了しました。

1007

いいえ

TransactionId が無効です。

1009

いいえ

クライアントのタイムスタンプが正しくありません。

1011

いいえ

送信された証明書のタイプが正しくありません。

1012

いいえ

認識された証明書にキー情報が欠落しているか、フォーマットチェックに失敗しました。

1013

いいえ

画質が低すぎます。

1014

いいえ

エラー回数が上限を超えました。

サンプルコード

#import "ViewController.h"
#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
 
    // SDK を初期化します。
    [[AliyunIdentityPlatform sharedInstance] install];
 
    [self initUI];
}

// この関数はユーザーが実装する必要があります。
- (NSString *)sentMetaInfoAndGetTransactionId:(NSString*) metaInfo {
    return @"Get TransactionId from your server."; // これを置き換えます。
}

- (void)onClickStart:(id) sender {
    NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];
    NSString *transactionId = [self sentMetaInfoAndGetTransactionId:metaInfo];

    // SDK の言語を設定します。
    NSDictionary *extParams = @{
        kIdentityParamKeyLanguage:@"en",
        kIdentityParamKeyProtocol:@"968412EB......................."// ネットワーク遅延を最適化するためにこのプロトコルを構成します。
    };
    // 検証を開始します。
    [[AliyunIdentityPlatform sharedInstance] verifyWithCertifyId:transactionId
                                       withCurrentViewController:self
                                                   withExtParams:extParams
                                                        complete:^(AliyunIdentityVerifyRes *response) {
        NSString *resContent = [NSString stringWithFormat:@"Code=%d Message=%@", response.code, response.message];
    }];
}

- (void)initUI {
    // ......
}

@end

デモパッケージ

iOS デモパッケージをダウンロードして、この機能をテストできます。

コンポーネントのトリミング

モジュール

トリミング可能

説明

パッケージサイズの増加

AliyunIdentityNFC

NFC 機能を使用しない場合はトリミングできます。

NFC モジュール

3.7 M

OpenSSL

トリミングできます (例: NFC 機能を使用しない場合)。

NFC モジュールの依存ライブラリ

AliyunIdentityOcr

OCR 機能を使用しない場合はトリミングが可能です。ただし、完全な eKYC ソリューションには OCR が必要です。

OCR モジュール

0.8 MB

faceguard

トリミングできません

Face Guard モジュール

0.74 MB

AliyunIdentityFace

トリミングはサポートされていません。

顔検出モジュール

2.2 M

ToygerService

トリミングはサポートされていません。

生体アルゴリズムモジュール

0.98 MB

ToygerNative

トリミングできません

生体アルゴリズムモジュール

AliyunIdentityPlatform

トリミングできません

ベースモジュール

0.04 MB

AliyunIdentityUtils

トリミングできません

ベースモジュール

0.04 MB

MNN

トリミングはサポートされていません。

生体アルゴリズムの依存ライブラリ

0.09 MB

DTFUtility

トリミングはサポートされていません。

ベースモジュール

0.1 M

AliyunOSSiOS

トリミングはサポートされていません。

顔検証の依存ライブラリ

0.23 MB