iOS接入

法规说明

根据我国《网络安全法》等相关法律法规及国家标准的要求,个人信息的收集和使用,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。故我们强烈建议您在拟接入易盾SDK前,检查和完善拟接入软件的《隐私政策》中有关采集个人信息部分的说明,确保已涵盖拟接入SDK项下需要采集的个人信息(详见附表),并明确您有权将上述个人信息提供给第三方用于安全服务。

附表:

采集信息类型备注
设备型号
设备IP地址
设备软件版本信息
设备唯一标识码(idfa)
传感器数据提供开关,默认打开,可根据业务需求随时设置关闭

接入流程

自动化模式下,SDK组件的接入流程:

  • 嵌入SDK
  • init:初始化SDK,初始化一次即可;
  • getToken:调用getToken接口获取token,每次调用返回不同的token值。一般由用户操作(提交等)来触发getToken,请注意:一个token只能使用一次,如果在同一页面中,允许用户多次操作,请多次调用getToken接口以获取不同的token。请勿在一次用户操作中,多次调用getToken接口;用户第一次启动的时候,请确认网络权限已经获取的情况下获取token
  • 提交token:将token作为请求参数提交到业务方后端。

嵌入SDK

导入SDK

  • 咨询易盾技术支持获得压缩包并解压,得到示例工程GuardianDemo和SDK文件 Guardian.framework。
  • 拖拽Guardian.framework文件到Xcode工程(请勾选 Copy Items if needed 选项)
  • 点击target -> Build Phase -> Link Binary With Libraries,添加AdSupport.framework、AvFoundation.framework、CoreTelephony.framewrok、SystemConfiguration.framework框架。
  • 工程配置 Build Settings -> Other Linker Flags ,添加 -ObjC

注意事项:iOS SDK 最低兼容的系统版本是iOS 8.0。

iOS SDK会收集IDFA,请参考文档末IDFA配置。

导入头文件

AppDelegate.m文件中、以及 需要使用SDK 的相关.m文件中,导入如下头文件:

    #import <Guardian/NTESCSGuardian.h>

说明:如果是Swift工程,请在对应的 bridging-header.h 中导入此头文件即可。

init接口

接口说明:

+ (void)initWithProductNumber:(NSString *)number completeHandler:(initBlock)block;
  • 调用方式:
[NTESCSGuardian initWithProductNumber:@"your_product_number" completeHandler:^(NSInteger code, NSString *message) {
        
}];

  • 接口描述:初始化SDK
  • 返回值:void
  • 参数说明
参数名类型是否必须说明
productNumberNSString产品编号
blockinitBlock回调Block
  • 回调code说明
codemessage说明
200ok成功
1001pruduct number error产品编号不正确

初始化可选参数配置

以下属性需要在初始化之前使用。

  • 设置传感器数据是否采集

@property (assign, nonatomic) BOOL seniorCollectStatus;

调用方式

[NTESCSGuardian sharedInstance]. seniorCollectStatus = NO;

属性说明:传感器数据采集开关,默认为开启。当需要禁用传感器数据采集时,设置为NO。 后面也有类方法的调用方式,功能相同。

  • 设置APP渠道名称

@property (copy, nonatomic) NSString *channelName;

调用方式

[NTESCSGuardian sharedInstance].channelName = @"渠道名称";

  • 设置私有化域名,正常情况不需要设置

@property (copy, nonatomic) NSString *urlPrefix;

调用方式

[NTESCSGuardian sharedInstance].urlPrefix = @"自定义域名";

参考值为 https://ac.dun.163yun.com

getToken接口

getToken接口返回唯一凭证token,业务方前端需要将此token提交到业务后端,业务后端再使用此token来check接口获取检测结果。注意:

  • 一般由用户的操作来触发getToken调用,比如用户点击“提交”按钮等
  • 一个token只能使用一次
  • 如果在不刷新页面的情况下,业务功能允许用户多次操作,请多次调用getToken接口以获取不同的token

接口说明:

+ (void)getTokenWithCompleteHandler:(tokenBlock)block;
或
+ (void)getTokenWithTimeout:(NSInteger)timeout completeHandler:(tokenBlock)block;
  • 调用方式:
[NTESCSGuardian getTokenWithCompleteHandler:^(NSString *token, NSInteger code, NSString *message) {
                
}];
或
[NTESCSGuardian getTokenWithTimeout:3000 completeHandler:^(NSString *token, NSInteger code, NSString *message) {
                
}];
  • 接口描述:用于查询的Token,通过参数block完成回调,获取token

  • 返回值:void

  • 参数说明

参数名类型是否必须说明
timeoutint最长超时时间,单位毫秒。若没指定,则默认3000ms;timeout可设置范围为1~10秒
blocktokenBlock回调Block
  • 回调code说明
codemessage说明
200ok成功
1002init error初始化失败

注意事项:

  • 该接口是以异步的方式获取Token,在生成Token完成时,会调用用户传入的Block进行回调,并传入Token到该Block中。

设置传感器数据采集状态

  • 调用方式:
 + (void)setSeniorStatus:(BOOL)isOpen;

  • 接口描述:传感器数据采集开关,默认为开启。当需要禁用传感器数据采集时,设置为NO。 在init之后,可以随时调用。
  • 返回值:无。
  • 参数说明
参数名类型是否必须说明
isOpenBOOLYES开启,NO关闭传感器数据采集

上传自定义数据

  • 调用方式:
+ (void)setExtraData:(NSString *)value forKey:(NSString *)key
  • 接口描述:上传自定义数据字段,通过业务字段进行关联分析使用
  • 返回值:无。
  • 参数说明
参数名类型是否必须说明
valueNSString参数内容
keyNSString字段名称

其他参数设定

IDFA配置

提交 AppStore 审核时关于 IDFA 的选项,如下图所示:

image title

以上4项代表的含义

  • 在 App 内投放广告

服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。

  • 将此 App 安装归因于先前投放的特定广告

跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告你需要勾选这一项。

  • 将此 App 中发生的操作归因于先前投放的特定广告

跟踪广告带来的用户的后续行为。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。

  • iOS 中的“限制广告跟踪”设置

对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的。

总结

  • 如果您的应用里只是集成了广告,不追踪广告带来的激活行为,那么选择 1 和 4。
  • 如果您的应用没有广告,而又获取了 IDFA。我们建议选择 2 和 4。