├──HuiYanSDK.framework├──YtSDKKitSilentLiveness.framework├──YtSDKKitReflectLiveness.framework├──YtSDKKitActionLiveness.framework├──YtSDKKitFramework.framework├──tnnliveness.framework├──YTFaceAlignmentTinyLiveness.framework├──YTFaceTrackerLiveness.framework├──YTFaceDetectorLiveness.framework├──YTPoseDetector.framework├──YTCommonLiveness.framework└──YTFaceLiveReflect.framework
├── AVFoundation.framework├── libc++.tbd└── Accelerate.framework
└── face-tracker-v001.bundle
└── HuiYanSDKUI.bundle
target 'HuiYanAuthDemo' douse_frameworks!pod 'CloudHuiYanSDK_FW', :path => './CloudHuiYanSDK_FW'end
<key>Privacy - Camera Usage Description</key><string>人脸核身需要开启您的摄像头权限,用于人脸识别</string>

// HuiYanOs的相关参数HuiYanOsConfig *config = [[HuiYanOsConfig alloc] init];// license文件在bundle中的路径config.authLicense = [[NSBundle mainBundle] pathForResource:@"YTFaceSDK.license" ofType:@""];// 活体检测本地检测超时时间(ms)config.authTimeOutMs = 20000;//指定HuiYanSDKUI.bundle 内语言目录文件config.setLanguageFileName = @"th";//th.lproj// 启动核身前,拉取本地的配置参数信息[HuiYanOsApi startGetAuthConfigData:config withSuccCallback:^(NSString * _Nonnull result) {// 获取配置信息成功, 将配置信息发送给服务器,兑换启动核身配置,服务器下发的光线序列(客户自己实现)NSString *liveData = [self getLiveDataWith:result];} withFialCallback:^(int errCode, NSString * _Nonnull errMsg) {// 获取配置参数失败(客户自己实现)NSLog(@"errCode:%d, errMsg:%@", errCode, errMsg);}];
[HuiYanOsApi startAuthByLightData:liveData withSuccCallback:^(NSData * _Nonnull data, NSString * _Nonnull videoPath) {//活体通过检测结果数据// 1. 将本地核身的数据信息,发送到服务器端做比对验证,得到最终结果。(客户自己实现)[self checkAuthResultByData:data];// 2. 处理本地核身视频videoPath。(客户自己实现)[self dealWithAuthVideo:videoPath];} withFialCallback:^(int errCode, NSString * _Nonnull errMsg) {// 本地核身失败获取,发生错误NSLog(@"errCode:%d, errMsg:%@", errCode, errMsg);}];
// 退出时做资源释放- (void)dealloc {[HuiYanOsApi release];}
API | 功能描述 |
资源释放接口 | |
获取慧眼SDK本地配置信息的接口 | |
传入服务器获取的光线序列,继续完成活体核身检测的接口 |
+ (void)release;
+ (void)startGetAuthConfigData:(HuiYanOsConfig *)huiYanOsConfigwithSuccCallback:(HuiYanConfigSuccCallback)huiYanConfigSuccCallbackwithFialCallback:(HuiYanConfigFailCallback)huiYanConfigFailCallback;
参数类型 | 参数名称 | 参数含义 |
huiYanOsConfig | 配置的参数 | |
huiYanConfigSuccCallback | 拉取配置结果成功的回调 | |
huiYanConfigFailCallback | 拉取配置结果失败的回调 |
+ (void)startAuthByLightData:(NSString *)lightDatawithSuccCallback:(HuiYanResultSuccCallback)huiYanResultSuccCallbackwithFialCallback:(HuiYanResultFailCallback)huiYanResultFailCallback;
参数类型 | 参数名称 | 参数含义 |
NSString | lightData | 从服务器兑换来启动核身使用的光线序列Base64 |
huiYanResultSuccCallback | 本地核身的结果成功回调 | |
huiYanResultFailCallback | 本地核身的结果失败回调 |
类型 | 名称 | 含义 | 默认值 |
NSString | authLicense | 客户申请的用户核审授权的License文件名 | 空 |
long | authTimeOutMs | 设置活体检测的超时时间 | 10000毫秒(10秒) |
long | prepareTimeoutMs | 设置准备阶段检测的超时时间 | 0 |
showTimeOutMode | 设置显示倒计时阶段 | HYShowTimeOutMode_PREPARE | |
BOOL | isDeleteVideoCache | 是否删除核身视频的本地缓存 | YES |
BOOL | iShowTipsPage | 是否显示引导页 | NO |
NSString | userUIBundleName | 自定义的UI的bundle文件名 比如 UserUIBundle.bundle 则设置为"UserUIBundle"; | nil |
NSString | userLanguageFileName | 自定义的languageBundle 名称 比如 UseLanguage.bundle 则设置为"UseLanguage"; | nil |
NSString | userLanguageBundleName | 自定义本地国际化文件名 比如 en.lproj 则设置为"en"; | nil |
languageType | SDK内部文字语言设置 | DEFAULT | |
BOOL | isGetBestImg | 精简模式下是否获取最佳帧图片 | NO |
NSString | setLanguageFileName | 默认HuiYanSDKUI.bundle 内新增的语言文件目录名称 优先级最高 | nil |
/*** 初始化成功回调** @param result 初始化回调数据*/typedef void (^HuiYanConfigSuccCallback)(NSString * _Nonnull result);
/*** 初始化失败回调** @param errCode 错误码* @param errMsg 错误信息*/typedef void (^HuiYanConfigFailCallback)(int errCode, NSString * _Nonnull errMsg);
/*** 活体核身成功回调** @param data 活体比对数据,GZip压缩后的数据* @param videoPath 活体视频路径*/typedef void (^HuiYanResultSuccCallback)(NSData * _Nonnull data, NSString * _Nonnull videoPath);
/*** 活体核身失败回调** @param errCode 错误码* @param errMsg 错误信息*/typedef void (^HuiYanResultFailCallback)(int errCode, NSString * _Nonnull errMsg);
typedef enum : NSUInteger {DEFAULT = 0,//跟随系统设置ZH_HANS,//中文简体ZH_HANT,//中文繁体ZH_HK,//中文繁体香港ZH_TW,//中文繁体台湾EN,//英文MS,//马来西亚语RU,//俄语JA,//日语CUSTOMIZE_LANGUAGE, //定制语言} LanguageType;
typedef NS_OPTIONS(int, HYShowTimeOutMode) {HYShowTimeOutMode_TIMEOUT_HIDDEN = 1 << 0,// 隐藏所有倒计时HYShowTimeOutMode_PREPARE = 1 << 1,// 准备阶段倒计时HYShowTimeOutMode_ACTION = 1 << 3,// 动作阶段倒计时};

#import <HuiYanSDK/HuiYanOsApi.h>#import <HuiYanSDK/HuiYanOSKit.h>//获取tokenNSString *faceToken = self.tokenTextField.text;// 配置SDKHuiYanOsConfig *config = [[HuiYanOsConfig alloc] init];//设置licconfig.authLicense = [[NSBundle mainBundle] pathForResource:@"xxx.lic" ofType:@""];//准备阶段超时配置config.prepareTimeoutMs = 20000;//检测阶段超时配置config.authTimeOutMs = 20000;config.isDeleteVideoCache = YES;config.languageType = EN;// config.userLanguageFileName = @"ko";// config.userLanguageBundleName = @"UseLanguageBundle";config.iShowTipsPage = YES;config.isGetBestImg = YES;[[HuiYanOSKit sharedInstance] startHuiYaneKYC:faceToken withConfig:configwitSuccCallback:^(HuiYanOsAuthResult * _Nonnull authResult, id _Nullable reserved) {NSString *token = authResult.faceToken;} withFailCallback:^(int errCode, NSString * _Nonnull errMsg, id _Nullable reserved) {NSString *showMsg = [NSString stringWithFormat:@"err:%d:%@",errCode,errMsg];NSLog(@"err:%@",showMsg);}];
API | 功能描述 |
进入慧眼SDK活体检测流程 | |
获取sdk版本号 |
/// 开启慧眼活体检测流程/// @param faceToken token/// @param kitConfig SDK配置/// @param succCallback 活体检测成功回调/// @param failCallback 活体检测失败回调- (void)startHuiYaneKYC:(NSString *)faceToken withConfig:(HuiYanOsConfig *)kitConfigwitSuccCallback:(HuiYanOKitSuccCallback)succCallbackwithFailCallback:(HuiYanOKitFailCallback)failCallback;
数类型 | 参数名称 | 参数含义 |
NSSting | faceToken | 活体流程单号 |
kitConfig | SDK配置类 | |
succCallback | 活体检测成功回调 | |
failCallback | 活体检测失败回调 |
数类型 | 参数名称 | 参数含义 |
NSSting | faceToken | 活体流程token |
/*** 活体检测成功回调** @param authResult 活体验证结果* @param reserved 预留位*/typedef void (^HuiYanOKitSuccCallback)(HuiYanOsAuthResult * _Nonnull authResult, id _Nullable reserved);
/*** 活体检测失败回调** @param errCode 错误码* @param errMsg 错误信息* @param reserved 预留位*/typedef void (^HuiYanOKitFailCallback)(int errCode, NSString * _Nonnull errMsg ,id _Nullable reserved);
HY_SUCCESS = 0,// 初始化参数异常HY_INITIALIZATION_PARAMETER_EXCEPTION = 210,// bundle配置异常HY_BUNDLE_CONFIGURATION_EXCEPTION = 211,// 优图配置异常HY_YTSDK_CONFIGURATION_EXCEPTION = 212,// 先调用初始化接口HY_PLEASE_CALL_FIRST_INIT_API = 213,// SDK 授权失败HY_SDK_AUTH_FAILED = 214,// 用户手动取消HY_USER_VOLUNTARILY_CANCELED = 215,// SDK 人脸本地检测失败HY_YTSDK_LOCAL_AUTH_FAILED = 216,// 相机开启失败HY_CAMERA_OPEN_FAIL = 217,// 请勿在核身过程中切换应用HY_DONOT_SWITCH_APPS = 218,// 摄像头权限异常HY_CAMEREA_PERMISSION_EXCEPTION = 219,// 视频裁剪失败HY_SDK_VEDIO_CUT_EXCEPTION = 220,// 光线数据格式错误HY_LIGHT_DATA_FORMAT_EXCEPTION = 221

HuiYanOsConfig *config = [[HuiYanOsConfig alloc] init];config.languageType = CUSTOMIZE_LANGUAGE;config.userLanguageFileName = @"ko";//例:设置 ko.lprojconfig.userLanguageBundleName = @"UseLanguage";//自定义打包bundle名称 例: UseLanguage.bundle


HuiYanOsConfig *config = [[HuiYanOsConfig alloc] init];config.userUIBundleName = @"UserUIBundle"
文档反馈