卓信ID SDK是从GTSDK 2.6.6.0版本时默认集成
开发者需要在APP的 Info.plist ⽂件中配置服务商提供的 channelId
, key为 ZX_CHANNEL_ID
,
value为 C01-GEztJH0JLdBC
, 如下所示:
#import <ZXSDK/ZXSDK.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 设置是否提示权限弹窗; YES:提示(默认) NO:不提示
[ZXSDK allowPermissionDialog:NO];
[ZXSDK startZXSDK];
return YES;
}
appAid(aaid): 标识APP级别的,只在相同APP之间不变
venderAid(vaid): 标识开发者级别的,相同开发者的多款APP之间不变
tags: 分为基础设备标签和扩展设备标签, 此处只返回基础设备标签(扩展标签参考 2.3.5获取设备标签 API)
/// @interface ZXSDKResultModel : NSObject
/// @property (nonatomic, copy, nonnull) NSString *zxid; 卓信id
/// @property (nonatomic, copy, nonnull) NSString *expireTime; 卓信id过期时间
/// @property (nonatomic, copy, nullable) NSArray *tags; 基础设备标签
/// @property (nonatomic, copy, nullable) NSString *aaid;
/// @property (nonatomic, copy, nullable) NSString *vaid;
[ZXSDK getZXID:^(ZXSDKResultModel * _Nullable model, NSError * _Nullable error) {
NSLog(@"getZXID ID:%@ 失效时间:%@ error:%@", model.zxid, model.expireTime, error);
}];
注: 如已开通 AID 能力, 默认是不加密返回, 如需设置加密(防止其他方获取到自己的 aids ), 需要在 Info.plist
文件中设置参数, key为 ZX_IS_PRIVACY
, value为 boolean 类型(YES:加密; NO:不加密), 如下所示:
注: 具体加解密使用方式,会在申请 AID 服务开通后给到相关信息
参数名 | 类型 | 说明 |
---|---|---|
accessKeyId | NSString | 通过服务申请后分配的密钥标识 |
signature | NSString | 信息签名字符串 |
signatureMethod | NSString | 信息签名方法,目前固定为 HMAC-SHA256 |
signatureNonce | NSString | 64 字节以内的随机串,用于防止重放攻击,每次请求必须提供不同的值 |
timestamp | NSString | UTC时间戳,从UTC1970年1月1日0时0分0秒起至现在的总秒数。如 1632634877 |
注: 具体参数获取方式及认证规则,会在申请 SAID 服务开通后给到相关信息
[ZXSDK getSAIDWithAccessKeyId:@"#accessKeyId#"
signature:@"#signature#"
signatureMethod:@"#signatureMethod#"
signatureNonce:@"#signatureNonce#"
timestamp:@"#timestamp#" callback:^(NSString * _Nullable said, NSError * _Nullable error) {
NSLog(@"getSAID1 ID:%@ error:%@", said, error);
}];
集成方可以获得预取号token, 由集成方主动调用卓信服务端接口来换取 SAID
[ZXSDK getAuthToken:^(NSString * _Nullable token, NSError * _Nullable error) {
NSLog(@"%@ ---- %@", token, error);
}];
[ZXSDK getTag:^(NSDictionary * _Nullable res, NSError * _Nullable error) {
NSLog(@"%@", [NSString stringWithFormat:@"获取tag: %@, error: %@", res, error]);
}];
示例返回结果(⽬前返回以下三个基础标签, 每个标签分⾼中低三档显示)
{
"tags": [
{
"tagCode": "1",
"tagName": "疑似刷机",
"level": "中⻛险"
},
{
"tagCode": "2",
"tagName": "疑似刷量",
"level": "低⻛险"
},
{
"tagCode": "3",
"tagName": "疑似模拟器",
"level": "⾼⻛险"
}
]
}