全部產品
Search
文件中心

ID Verification:iOS接入

更新時間:Dec 05, 2025

ID Verification 提供了移動端 iOS 平台的 SDK,可以協助您在行動裝置 App中實現 eKYC 遠程身分識別驗證功能。通過向服務端請求並獲得唯一標識(transactionId)後,您可以傳入該唯一標識並調起 SDK 的對應功能。本文將結合範例程式碼介紹 iOS 平台的接入流程。

使用限制

  • 僅支援 iOS 9 及以上系統版本的行動裝置(iPhone 或 iPad)。

  • 必要的隱私許可權:相機、網路。

SDK下載和配置

擷取SDK

下載iOS SDK並解壓,然後複製所有framework包到您的工程檔案夾中。

添加必要許可權

在 Info.plist 中添加以下許可權(許可權描述僅供參考):

image

Xcode添加framework

在工程的設定中定位到Build Settings > Build Phases > Link Binary With Libraries,添加framework。

  • 添加SDK中所有的framework:

    AliyunIdentityFace.xcframework
    AliyunIdentityPlatform.xcframework
    AliyunIdentityUtils.xcframework
    AliyunIdentityOcr.xcframework
    ToygerService.xcframework
    AliyunOSSiOS.xcframework
    faceguard.xcframework
    DTFUtility.xcframework
    ToygerNative.xcframework
    IDVMNN.xcframework
  • 添加系統依賴庫:

    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.xcframework/ios-arm64/AliyunIdentityPlatform.framework中。

  • AliyunIdentityFace.bundle:資源存在於AliyunIdentityFace.xcframework/ios-arm64/AliyunIdentityFace.framework中。

  • AliyunIdentityOCR.bundle:資源存在於AliyunIdentityOcr.xcframework/ios-arm64/AliyunIdentityOcr.framework中。

  • ToygerService.bundle:資源存在於ToygerService.xcframework/ios-arm64/ToygerService.framework中。

配置Linker flags

在工程的設定中定位到Build Settings > Other Linker Flags,添加-ObjC標誌。

調用SDK

引入標頭檔

#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>

初始化SDK

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

參數說明:

options:資訊採集可選項,預設可以為null。選擇性參數如下:

重要
  • ID Verification用戶端內建裝置助手安全模組,為了滿足不同地區資料收集合規要求,提供了不同的資料上報地區。您可以基於使用者屬性不同,設定CustomUrlCustomHost指定不同的上報網站。

  • 一次應用會話生命週期內只能指定一個地區上報,且服務端查詢時地區需要和上報地區保持一致。各產品服務端支援的地區有所不同,詳情請參考支援的地區

  • 各地區的CustomUrl

    • 中國香港https://cloudauth-device.cn-hongkong.aliyuncs.com

    • 新加坡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

欄位名

說明

樣本

IPv6

是否使用IPv6網域名稱上報裝置資訊:

  • 0(預設):否(使用IPv4網域名稱)

  • 1:是(使用IPv6網域名稱)

"1"

DataSwitch

裝置資訊上報時機。

  • 0(預設):初始化時

  • 1:擷取Token時

說明

建議採用預設配置。

"1"

CustomUrl

設定資料上報伺服器網域名稱。

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

CustomHost

設定資料上報伺服器host。

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

擷取metaInfo資料

- (NSString *)getMetaInfo;

App伺服器需要首先獲得用戶端的metaInfo後,才能向阿里雲請求初始化介面。

因此,用戶端需要首先擷取原生metaInfo資料,隨後使用該metaInfo完成後續的初始化流程,才能擷取TransactionId。

調用SDK開始認證

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

參數說明

名稱

類型

說明

transactionId

NSString

在伺服器端的Initialize介面中擷取。

viewController

UIViewController

用戶端App當前的ViewController。

extParams

NSDictionary

使用者自訂參數,如無特殊情況,一般直接傳null即可。

當前支援的參數欄位,請參見extParams配置說明

completeBlock

AliyunIdentityVerifyBlock

認證結束回調,包含認證結果。

extParams配置說明

Key

說明

樣本(String類型)

kIdentityParamKeyNextButtonColor

OCR識別結果頁面的底部按鈕顏色。

#FF0000

kIdentityParamKeyRoundProgressColor

掃臉時的圓圈顏色。

#FF0000

kIdentityParamKeyOcrSelectPhoto

證件OCR識別環節,是否展示相簿上傳入口:

  • 1(預設):展示

  • 0:不展示

1

kIdentityParamKeyShowOcrResult

證件OCR識別環節,是否展示識別結果頁:

  • 1(預設):展示

  • 0:不展示

1

kIdentutyParamKeyEditOcrResult

證件OCR識別環節,識別結果頁是否可編輯:

  • 1(預設):可編輯

  • 0:不可編輯

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具體支援的語言列表,請參見Android和iOS SDK 自訂語種

zh-Hans

kIdentityParamKeyDefaultLanguage

SDK預設語言設定,可參考kIdentityParamKeyLanguage欄位取值

預設為en:英文。

en

kIdentityParamKeyCloseButtonPosition

SDK關閉按鈕位置:

  • left(預設):左側

  • right:右側

left

kIdentityParamKeyWatermark

OCR識別成功後浮水印文字。

測試浮水印文字

kIdentutyParamKeyProtocol

SDK Protocol。

說明

通過服務端Initialize介面擷取protocol,傳入擴充參數中,可減少SDK內部介面互動,提升網路體驗。

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

錯誤碼

錯誤碼

是否計費

結果碼描述

1000

使用者完成了刷臉過程,認證建議結果為通過。該結果僅供參考,可通過調用服務端CheckResult介面擷取最終認證結果,進行下一步處理。

1001

使用者完成了刷臉過程,認證建議結果為未通過。該結果僅供參考,可通過調用服務端CheckResult介面擷取最終認證結果、未通過的詳細原因,進行下一步處理。

1002

表示系統錯誤。

1003

表示SDK初始化失敗。

1004

表示網路攝影機錯誤。請參考以下步驟嘗試解決:

  1. 在認證前請先確保App已擷取到相機許可權。

  2. 如已授權仍提示無許可權,請嘗試清除App緩衝後重試。

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];
 
    // Initialize the sdk
    [[AliyunIdentityPlatform sharedInstance] install];
 
    [self initUI];
}

// This function needs to be implemented by the user
- (NSString *)sentMetaInfoAndGetTransactionId:(NSString*) metaInfo {
    return @"Get TransactionId from your server."; // replace it.
}

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

    // Set the sdk language
    NSDictionary *extParams = @{
        kIdentityParamKeyLanguage:@"en"
        kIdentutyParamKeyProtocol:@"968412EB......................."//配置該協議可最佳化網路耗時
    };
    // start Verify
    [[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

Demo程式碼封裝

您可以下載iOS Demo程式碼封裝進行體驗。

組件裁剪

是否可裁剪

模組

模組說明

包體增量

可裁剪

AliyunIdentityNFC

裁剪後NFC功能不可用

3.7M

可裁剪

OpenSSL

裁剪後NFC功能不可用

可裁剪

AliyunIdentityOcr

裁剪後OCR功能、eKYC認證功能不可用

0.8M

可裁剪

faceguard

該模組保護刷臉過程中端側認證環境安全,裁剪後會削弱安全對抗效果

0.74M

可裁剪

AliyunIdentityFace

裁剪後人臉活體功能不可使用

2.2M

可裁剪

ToygerService

裁剪後人臉活體功能不可使用

0.98M

可裁剪

ToygerNative

裁剪後人臉活體功能不可使用

不可裁剪

AliyunIdentityPlatform

不可裁剪

0.04M

不可裁剪

AliyunIdentityUtils

不可裁剪

0.04M

可裁剪

MNN

裁剪該模組後,遠近活體、人臉品質、OCR自動掃描功能不可用

0.09M

不可裁剪

DTFUtility

不可裁剪

0.1M

不可裁剪

AliyunOSSiOS

不可裁剪

0.23M