logo
logo
请输入关键词搜索产品或者文档
中国

中国站

创蓝云智

国际站

Innopaas

IOS开发文档

更新时间:2026-08-20 13:50:58

一、准备工作

1、概述

本文是活体检测SDK_iOS 端接入文档,用于指导 SDK 的集成使用。

2、创建应用

在创蓝平台注册账号,创建应用并获取 appIdappkey

3、开发环境搭建

a.导入FrameWork

将活体检测SDK压缩包中framework中的所有资源添加到工程中,并选择 Copy Items if need  选项

b.配置Xcode

  • Xcode->TARGETS->Build Settings->Linking->Other Linker Flags 添加–ObjC
  • Xcode->TARGETS->Info添加相机权限访问描述

4、快速体验 demo

  • SDK压缩包中的CLRealPersonDemo文件是demo示例源码,可直接运行起来测试。

二、API调用

0. 获取authToken

  • 请查看服务端集成文档,调用获取授权Token(authToken)接口,获取authToken为后续步骤做准备。

1、初始化

建议在 Application 的 didFinishLaunchingWithOptions 方法中进行初始化:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    
     // 控制台log开关
    [CLCoreManager printConsoleEnable:YES];
    // 设置token,建议在需要使用文档中4,5功能时设置,有效期30分钟
    [CLRealPersonManager setToken:@" token "];
    
    
    // 2.0.0.2之前版本使用:
    [CLCoreManager initWithAppid:@" appid "];
    // 2.0.0.2及之后版本使用:
    [CLCoreManager initWithAppkey:@" appkey "];
    
    ...
    return YES;
}

注意:在 initWithAppid: 中设置 appId:和在setToken:中设置token。

温馨提示: appId/appkey查看路径,登录开发者平台,右上角点击「应用管理」找到自己的应用,点击后面的「配置」按钮,然后可以看到 appkey(对应SDK中appid、appkey) 了,点击复制按钮即可。token从服务端api获取

2、活体检测

2.1、调用示例

① 先初始化活体检测对象

/// 初始化活体检测对象
/// @param recordView               传入放置检测活体的recordView对象
- (instancetype)initWithRecordView:(UIView *)recordView;

② 在开始活体检测前进行相关参数设置

/// 设置活体检测的超时时间(在开始活体检测之前设置)
/// @param timeout                  请传入10-120范围内的时间值,单位s
- (void)setTimeoutInterval:(NSTimeInterval)timeout;

/// 设置活体检测每个动作的时长(在开始活体检测之前设置)
/// @param duration                 每个动作的时长(1-5s)
- (void)setActionDuration:(CGFloat)duration;

/// 设置活体检测动作的个数(在开始活体检测之前设置,默认为1-3的随机数 V2.0.0.3+版本默认为1个)
/// @param number                   动作的个数(1-3)
/// @param securityLevel            安全级别:默认为低(随机动作数),高至少为两个动作(会修正number设置数量)
- (void)setActionNumber:(NSInteger)number securityLevel:(CLSecurityLevel)securityLevel;

/// 设置检测时脸离屏幕距离(在开始活体检测之前设置)V2.0.0.3版本增加
/// @param distance                 默认0(-1:稍近,0:正常,1:稍远)
- (void)setDistanceNumber:(NSInteger)distance;

③ 开始活体检测

/// 开始活体检测
/// @param actionsHandler           活体检测动作序列号的回调(非主线程)
/// @param completionHandler        活体检测结果的回调(非主线程),结果状态见CLStatus枚举类型
- (void)startLiveDetectWithActionsHandler:(CLAcitionsHandler)actionsHandler
                    completionHandler:(CLCompletionHandler)completionHandler;

/// 活体检测,视频转发
/// @param urlString                视频转发之后URL或者startLiveDetectWithActionsHandler:返回的url
/// @param isReTran                 表示是否转发,YES:转发urlString参数值为转发后的url NO:不转发urlString参数值为startLiveDetectWithActionsHandler:中返回的url
- (void)resultWithDetectUrl:(NSString *)urlString
                   isReTran:(BOOL)isReTran;

④ 停止活体检测

/// 停止活体检测
/// 调用时机:
///     1、在活体检测结果的回调里调用
///     2、未完成活体检测,需要中止时调用 (超时不要调用)
- (void)stopLiveDetect;

2.2 回调数据说明

① 会在 completionHandler中回调 CLStatus 信息,具体的信息如下表所示:

CLStatus错误信息备注说明
CLCheckPass活体检测通过/
CLCheckNotPass活体检测不通过/
CLOperationTimeout操作超时,用户未在规定时间内完成动作/
CLGetConfFaild获取配置信息失败/
CLRecordFaild视频录制失败/
CLOnlineCheckFaild请求检测结果失败/
CLOnlineUploadFaild上传图片失败/
CLSDKErrorSDK内部发生错误/
CLRPVedioNoMate人脸动作与提示动作不吻合,请重试/
CLRPVedioNoFace没有检测到人脸,请重试/
CLRPVedioMoreFace检测到有多张人脸,请重试/
CLRPVideoIllumination检测到光线不足,请重试/
CLRPVedioAngle检测到人脸角度有偏差,请重试/
CLRPVedioBlue检测到人脸模糊,请重试/
CLRPVedioMask检测到人脸有遮挡,请重试/
CLRPVedioSmall检测到人脸过于靠近屏幕,请重试/
CLNetError无网络链接/
CLRPVedioError其他错误/
CLRPNoMoney账号余额不足V2.0.0.3新增

温馨提示: ① 调用活体检测方法之前,请确保已经获取到相机、!!! ② 我们提供了默认的声音文件和 GIF 图片文件,如不满意可以替换,具体逻辑在demo中实现,可任意更改**;**

24小时热线 400-9669-253