全部產品
Search
文件中心

ID Verification:iOS接入

更新時間:Feb 12, 2026

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,添加xcframework。

  • 添加SDK中所有的xcframework:

    AliyunIdentityFace.xcframework
    AliyunIdentityPlatform.xcframework
    AliyunIdentityUtils.xcframework
    AliyunIdentityOcr.xcframework
    AliyunOSSiOS.xcframework
    faceguard.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中。

配置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

    • 馬來西亞(吉隆坡)https://cloudauth-device.ap-southeast-3.aliyuncs.com

欄位名

說明

樣本

IPv6

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

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

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

"1"

DataSwitch

裝置資訊上報時機。

  • 0(預設):初始化時

  • 1:擷取Token時

說明

建議採用預設配置。

"1"

CustomUrl

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

具體內容,請參見各地區的CustomUrl

CustomHost

設定資料上報伺服器host。

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

說明

此處為新加坡地區樣本,其他地區的host,請參見各地區的CustomUrl

擷取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*******...

錯誤碼

錯誤碼

是否計費

subCode

結果碼描述

1000

A1000_1

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

1001

A1001_1

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

1002

A1002_1

模型載入失敗。

A1002_3

模組載入異常。

A1002_4

iOS系統低於9.0。

A1002_5

網路介面異常。

1003

A1003_1

初始化介面,內容為空白。

A1003_2

初始化介面,內容格式錯誤。

A1003_3

用戶端初始化協議解析失敗。

A1003_4

初始化介面,內容解密失敗。

A1003_5

初始化介面失敗。

A1003_6

初始化介面OSS為空白。

A1003_7

context為空白。

1004

A1004_1

裝置自拍異常。

A1004_2

開啟網路攝影機異常。

A1004_3

相機許可權拒絕。

1005

A1005_1

初始化介面網路異常。

A1005_2

認證介面網路異常。

1006

A1006_1

使用者退出。

A1006_2

使用者15分鐘放置逾時退出。

1007

A1007_1

無效的認證id。

1014

A1014_1

表示錯誤次數超出上限。

1017

A1017_1

產品productCode異常。

範例程式碼

#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

不可裁剪

AliyunIdentityPlatform

不可裁剪

0.04M

不可裁剪

AliyunIdentityUtils

不可裁剪

0.04M

可裁剪

MNN

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

0.09M

不可裁剪

AliyunOSSiOS

不可裁剪

0.23M