Embedded Binaries
库依赖DeepSupervise.Framework
库文件复制到工程目录并拖到工程Embedded Binaries
添加Framework引用DeepSuperviseUserApi
#import <DeepSupervise/DeepSupervise.h>
@interface ViewController ()
{
DeepSuperviseUserApi* mDSApi;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
mDSApi = [DeepSuperviseUserApi sharedInstance];
mDSApi.delegate = self;
}
@end
DeepSuperviseUserApiDelegate
协议// .h
#import <DeepSupervise/DeepSuperviseUserApiDelegate.h>
@interface ViewController : UIViewController<DeepSuperviseUserApiDelegate>
@end
// .m
#import <DeepSupervise/DeepSupervise.h>
-(void)userApiPrepared:(int)status info:(char*_Nullable)localCert
{
/**
调用[mDSApi prepareCertificate:password:type:]方法后回调
与prepareCertificate:password:type:调用时线程相同,通常为UI线程
@param status
status: 0成功/-1参数错误/-2输出缓冲区大小不足
@param localCert 本地凭证
*/
}
-(void)userApiCompleted:(int)status info:(char*_Nullable)info
{
/**
调用[mDSApi systemInfo]方法后回调
在子线程中执行,如果需要操作UI应同步到UI线程
@param status 状态码
0: 成功
-1: 加密类型不支持
-2: 输出缓冲区大小不足
-3: 密钥未初始化
@param info 加密后的设备信息
*/
}
[mDSApi cffexit_prepareCertificate:password:type:]
方法获取本地凭证/**
准备客户认证数据
@param APP_ID 应用ID
@param PASSWORD 密码
@param type 加密类型DS_ENCRYPT_TYPES
*/
[mDSApi prepareCertificate:APP_ID password:PASSWORD type:DS_ENCRYPT_TYPE_RSA_PKCS1_PADDING];
[DeepSuperviseUserApiDelegate userApiPrepared:info:]
回调方法中获取本地凭证并进行服务器验证[mDSApi cffexit_registerCertificate:]
方法注册服务器凭证/**
注册认证信息
@param certificate 认证信息,上一步block中cert参数
@return 0注册成功/-1注册失败
*/
int status = [mDSApi registerCertificate:serverCerts];
[mDSApi cffexit_systemInfo]
方法开始获取加密后的设备信息[mDSApi systemInfo];
[mDSApi cffexit_staticSystemInfo]
方法获取使用固定公钥加密的设备信息[mDSApi cffexit_staticSystemInfo];
此时无需调用
[mDSApi cffexit_prepareCertificate:password:type:]
方法、[mDSApi cffexit_registerCertificate:]
方法以及[mDSApi cffexit_registerCertificate:]
方法,同时[DeepSuperviseUserApiDelegate userApiPrepared:info:]
回调方法也无需实现。
[DeepSuperviseUserApiDelegate userApiCompleted:info:]
回调方法中获取加密后的设备信息