更新时间:2026-06-11 09:55:21
本文是活体检测SDK_iOS 端接入文档,用于指导 SDK 的集成使用。
在创蓝平台注册账号,创建应用并获取 appId 和 appkey
a.导入FrameWork
将实人认证SDK压缩包中framework中的所有资源添加到工程中,并选择 Copy Items if need 选项

b.配置Xcode



建议在 Application 的 didFinishLaunchingWithOptions 方法中进行初始化:
复制成功- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... // 控制台log开关 [CLCoreManager printConsoleEnable:YES]; // 设置token,建议在需要使用文档中4,5功能时设置,有效期30分钟 [CLRealPersonManager setToken:@" token "]; // 2.0.0.4版本拆分ocr,需要单独设置token [CLOCRManager 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获取
① 先初始化活体检测对象
复制成功/// 初始化活体检测对象 /// @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;
① 会在 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中实现,可任意更改**;**