有奖捉虫:行业应用 & 管理与支持文档专题 HOT

开发准备

1. 注册腾讯云账号,单击进入人脸核身控制台,即可开通相应服务。
2. 从慧眼 SDK 下载链接中下载 SDK,并集成到本地。
3. 获取 SDK License。

iOS 端慧眼 SDK 接入流程

1. 开发环境 Xcode 11.0 或以上。
2. 慧眼 iOS SDK 适用于手机 iOS9.0及以上版本。

1. 手动接入方式

导入相关库及文件

Link Binary With Libraries 导入相关 Framework。

SDK 依赖的框架如下:

├──HuiYanPublicSDK.framework
├──libTuringShieldCamRisk.a
├──tnnliveness.framework
├──YTCommonLiveness.framework
├──YTCv.framework
├──YTFaceAlignmentTinyLiveness.framework
├──YTFaceDetectorLiveness.framework
├──YTFaceLiveReflect.framework
├──YTFaceTrackerLiveness.framework
├──YTPoseDetector.framework
├──YtSDKKitActionLiveness.framework
├──YtSDKKitFramework.framework
├──YtSDKKitReflectLiveness.framework
├──YtSDKKitSilentLiveness.framework
├──YtSDKKitFrameworkTool.framework
├──TXYCommonDevice.framework
├──TXYCommonNetworking.framework
├──TXYCommonUtils.framework
├──YtSDkkitProtobuf.framework
└──YTSm.framework
//若需要使用国密加密,需添加YtTencentSM库
└──YtTencentSM.framework
├──libc++.tbd
└── Accelerate.framework

Copy Bundle Resources 中导入模型

├── face-tracker-v003.bundle
└── HuiYanSDKUI.bundle
依赖其他框架:Protobuf 3.x以上版本。

2. 使用 Pod 方式接入

1. 将 CloudHuiYanSDK_FW 文件夹复制到集成项目 Podfile 同级目录下。
├──集成项目.xcodeproj
├──Podfile
├──CloudHuiYanSDK_FW
├───────Frameworks
├────────────HuiYanPublicSDK.framework
├────────────YTCv.framework
├────────────YTSm.framework
├────────────libRiskFeatures.a
├────────────tnnliveness.framework
├────────────YTCommonLiveness.framework
├────────────YTFaceAlignmentTinyLiveness.framework
├────────────YTFaceDetectorLiveness.framework
├────────────YTFaceLiveReflect.framework
├────────────YTFaceTrackerLiveness.framework
├────────────YTPoseDetector.framework
├────────────YtSDKKitActionLiveness.framework
├────────────YtSDKKitFramework.framework
├────────────YtSDKKitFrameworkTool.framework
├────────────TXYCommonDevice.framework
├────────────TXYCommonUtils.framework
├────────────TXYCommonNetworking.framework
├────────────YtSDKKitReflectLiveness.framework
├────────────YtSDKKitSilentLiveness.framework
├────────────YtSDkkitProtobuf.framework
//若未使用国密加密功能,YtTencentSM库可不必添加
├────────────YtTencentSM.framework
├───────Resources
├────────────HuiYanSDKUI.bundle
└────────────face-tracker-v003.bundle
2. 在 Podfile 设置:
target 'HuiYanAuthDemo' do
use_frameworks!
pod 'CloudHuiYanSDK_FW', :path => './CloudHuiYanSDK_FW'
pod 'Protobuf'
end
3. pod install 更新。

Build Phases 设置

1. Other Linker Flags 新增 -ObjC。
2. 接入 ViewController.m 设置后缀为.mm。

权限设置

SDK 需要手机网络及 摄像头使用权限,请添加对应的权限声明。 SDK 不强制获取可选权限,即使没有获取可选权限,SDK 基本功能也能正常运行。您可以配置可选权限,以便使用 SDK 提供的其他可选功能。建议调用请求前在合适的时机调用 SDK 提供的方法,在用户授权的情况下获取声明中的权限。
<key>Privacy - Camera Usage Description</key>
<string>人脸核身需要开启您的摄像头权限,用于识别</string>

SDK 接口使用说明

初始化 SDK

​在使用慧眼 SDK 的页面场景中,先进行初始化设置。 确保在用户阅读 App 隐私政策并取得用户授权之后,按 App 功能需要在合适时机调用正式初始化函数 [[HuiYanPublicSDK sharedInstance] initSDKWithViewController:self] 初始化 SDK。反之,如果用户不同意《隐私政策》授权,则不能调用正式初始化函数。
- (void)viewDidLoad {
[super viewDidLoad];
[[HuiYanPublicSDK sharedInstance] initSDKWithViewController:self];
}

设置 FaceIdToken 的方法

​在您使用慧眼 SDK 进行活体核身检测的时候,需要提前获取 FaceIdToken,设置到 AuthConfig 对象中。
AuthConfig *config = [[AuthConfig alloc] init];
config.token = currentFaceIdToken;

启动活体核身

​当您需要启动活体核身检测的时候,只需要调用 [[HuiYanPublicSDK sharedInstance] startHuiYanAuth:] 函数,同时传入此次核身需要的配置信息以及监听结果的回调即可。
// 启动活体核身的配置信息
AuthConfig *config = [[AuthConfig alloc] init];
config.token = currentFaceIdToken;
//提前申请license,设置licencePath若是放入Bundle中如下设置
config.licencePath = [[NSBundle mainBundle] pathForResource:@"YTFaceSDK.license" ofType:@""];
[[HuiYanPublicSDK sharedInstance] startHuiYanAuthWithAuthConfig:(AuthConfig * _Nonnull)config withProcessSucceedBlock:^(id _Nonnull resultInfo, id _Nullable retFaceidToken) {
NSLog(@"result:%@ faceIdToken:%@",resultInfo,retFaceidToken);
} withProcessFailedBlock:^(NSError * _Nonnull error, id _Nullable retFaceidToken) {
NSLog(@"result:%ld-%@ faceIdToken:%@",[error code],[error.userInfo objectForKey:NSLocalizedDescriptionKey],retFaceidToken);
}];
注意:
当前的 "FaceSDK.license" 文件是需要您主动申请的,暂时您可以联系客服进行 license 申请。将申请完成后的 license 文件放至当前项目目录下,添加至资源文件(copy Bundle Resources)中。
AuthConfig 主要为配置参数信息,可以参考 iOS 端 API 概述 文档里有关 AuthConfig 的详细说明。 请您注意,SDK 不强制获取可选参数,即使没有获取可选参数,SDK 基本功能也能正常运行。您可以配置可选参数,以便使用 SDK 提供的其他可选功能。

SDK 资源释放

​在退出当前页面时候,可以调用 SDK 资源释放接口。终端用户撤销同意处理其个人信息的授权时,您可通过调用 [HuiYanPublicSDK clearInstance];接口关闭 SDK 功能并停止采集用户数据,您可以按如下步骤实现。
- (void)dealloc {
[HuiYanPublicSDK clearInstance];
}

常见问题

1. 出现如图错误,SDK 内部使用 c++语法,需增加 libc++.tbd 系统库。
image-20200916102446056


2. 提示: auth path (null)errMsg:参数错误
2.1 检查license文件是否加入bundle,config.licensePath 为空。
2.2 TARGETS -> BuildPhases -> copyBundleResources 是否存在 license。
3. 出现进入 sdk 没有画面
TARGETS > Build Settings > other Linker Flags 设置 -ObjC
4. 出现如下图提示错误

image-20200916112356691


在TARGETS > BuildPhases > Link Binary With Libraries 添加系统 Accelerate.framework。
5. 在使用 pod 集成时若是出现 Undefined symbol:_OBJC_CLASS$_HuiYanSDK 或者其他的 framework 没有找到的情况
TARGETS > Build Settings > other Linker Flags 添加$(inherited)。