IOS开发文档
更新时间:2026-08-20 13:50:58
一、准备工作
1、概述
本文是活体检测SDK_iOS 端接入文档,用于指导 SDK 的集成使用。
2、创建应用
在创蓝平台注册账号,创建应用并获取 appId 和 appkey
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 | 上传图片失败 | / |
| CLSDKError | SDK内部发生错误 | / |
| CLRPVedioNoMate | 人脸动作与提示动作不吻合,请重试 | / |
| CLRPVedioNoFace | 没有检测到人脸,请重试 | / |
| CLRPVedioMoreFace | 检测到有多张人脸,请重试 | / |
| CLRPVideoIllumination | 检测到光线不足,请重试 | / |
| CLRPVedioAngle | 检测到人脸角度有偏差,请重试 | / |
| CLRPVedioBlue | 检测到人脸模糊,请重试 | / |
| CLRPVedioMask | 检测到人脸有遮挡,请重试 | / |
| CLRPVedioSmall | 检测到人脸过于靠近屏幕,请重试 | / |
| CLNetError | 无网络链接 | / |
| CLRPVedioError | 其他错误 | / |
| CLRPNoMoney | 账号余额不足 | V2.0.0.3新增 |
温馨提示: ① 调用活体检测方法之前,请确保已经获取到相机、!!! ② 我们提供了默认的声音文件和 GIF 图片文件,如不满意可以替换,具体逻辑在demo中实现,可任意更改**;**
这篇文档对您有帮助吗?




