===================================================================
1.3.5
2022-03-14
1.优化多线程逻辑
==============================修改说明============================== 1.3.4
【代码变更】
- 修复数据上报可能产生异常的问题
==============================修改说明============================== 1.3.2
【代码变更】
- 优化多线程取值逻辑
==============================修改说明============================== 1.3.1
【代码变更】
- 优化 sdk 解析数据上报
==============================修改说明============================== 1.3.0
【代码变更】
- 容灾能力升级,当主ip解析异常时自动切换备份ip
==============================修改说明============================== 1.2.1
【代码变更】
- 支持在swift项目中使用
==============================修改说明============================== 1.2.0
【代码变更】
- 支持DES、AES、HTTPS三种加密方式
- 支持批量查询
- 支持查询线路IP设置
==============================修改说明============================== 1.1.6.1
【代码变更】
-
增加WGGetDnsDetail接口
/** 详细数据查询接口 @param domain 域名 @return 查询到的详细信息 格式示例: { "v4_ips":"1.1.1.1,2.2.2.2", "v6_ips":"FF01::1,FF01::2", "v4_ttl":"100", "v6_ttl":"100", "v4_client_ip":"6.6.6.6" "v6_client_ip":"FF01::6" } */ - (NSDictionary *) WGGetDnsDetail:(NSString *) domain;
==============================修改说明============================== 1.1.6
【代码变更】
- 增加type aaaa请求
==============================修改说明============================== 1.1.5
【代码变更】
- 添加bitcode支持
==============================修改说明============================== 1.1.4
【代码变更】
- 修复SDK内部未持有传入dnsKey的强引用问题
==============================修改说明============================== 1.1.3
【代码变更】
- 修复和专版符号重复问题
==============================修改说明============================== 1.1.2
【代码变更】
- 优化内部处理逻辑
==============================修改说明============================== 1.1.1.1
【代码变更】
- 优化代码
==============================修改说明============================== 1.1.1
【代码变更】
#pragma mark - 设置业务基本信息,仅调用一次即可
/**
设置业务基本信息(腾讯云业务使用)
@param appkey 业务appkey,腾讯云官网(https://console.cloud.tencent.com/httpdns)申请获得,用于上报
@param dnsid dns解析id,腾讯云官网(https://console.cloud.tencent.com/httpdns)申请获得,用于域名解析鉴权
@param dnsKey dns解析key,腾讯云官网(https://console.cloud.tencent.com/httpdns)申请获得,用于域名解析鉴权
@param debug 是否开启Debug日志,YES:开启,NO:关闭。建议联调阶段开启,正式上线前关闭
@param timeout 超时时间,单位ms,如设置0,则设置为默认值2000ms
@param useHttp 是否使用http路解析,YES:使用http路解析,NO:使用https路解析
@return YES:设置成功 NO:设置失败
*/
- (BOOL) WGSetDnsAppKey:(NSString *) appkey DnsID:(int)dnsid DnsKey:(NSString *)dnsKey Debug:(BOOL)debug TimeOut:(int)timeout UseHttp:(BOOL)useHttp;
/**
设置业务基本信息(腾讯内部及代理业务使用)
@param appkey 业务appid,同手Q APPID
@param debug 是否开启Debug日志,YES:开启,NO:关闭。建议联调阶段开启,正式上线前关闭
@param timeout 超时时间,单位ms,如设置0,则设置为默认值2000ms
@param useHttp 是否使用http路解析,YES:使用http路解析,NO:使用https路解析
@return YES:设置成功 NO:设置失败
*/
- (BOOL) WGSetDnsAppKey:(NSString *) appkey Debug:(BOOL)debug TimeOut:(int)timeout UseHttp:(BOOL)useHttp;
使用方法:useHttp参数设置为YES
- ipv6下,仅返回ipv6地址,即返回格式为:[0, ipv6]
- ipv4下,仅返回ipv4地址,即返回格式为:[ipv4, 0]
- 双栈网络下,返回解析到ipv4&ipv6(如果存在)地址,即返回格式为:[ipv4, ipv6]
==============================修改历史============================================ 1.1.0.1(Https版本)
【代码变更】
- 优化代码
==============================修改历史============================================ 1.1.0(Https版本)
【代码变更】
- 关键参数由在Info.plist中配置的方式改为参数传入的方式
==============================修改历史============================================ 1.0.16(Https版本)
【代码变更】
- 修复SNI方案中的小问题
==============================修改历史============================================ 1.0.15(Https版本)
【代码变更】
-
增加设置appid和timeout的接口:
/** 设置业务基本信息 @param dnsAppId 业务appid,用于上报 @param timeOut 超时时间,单位ms,如设置0,默认为2000ms, @return YES:成功 NO:失败 */ - (BOOL) WGSetDnsAppId:(NSString *) dnsAppId TimeOut:(int)timeOut;
==============================修改历史============================================ 1.0.14(Https版本)
【代码变更】
#import <MSDKFoundation/MSDKFoundation.h>
更改为#import <MSDK/MSDK.h>
以兼容MSDK 3.0 以上版本
==============================修改历史============================================ 1.0.13.1(Https版本)
【代码变更】
- 优化代码逻辑,读取缓存更高效
==============================修改历史============================================ 1.0.12(Https版本)
【代码变更】
- 增加
WGGetDnsOpenId
接口
==============================修改历史============================================ 1.0.11.1(Https版本)
【代码变更】
- 修复异步解析接口偶现crash问题
==============================修改历史============================================ 1.0.11(Https版本)
【代码变更】
- 修复localdns解析偶现crash
- 上报字段新增id,key
- 外部应用上报增加clientIP字段
- localdns解析增加ipv6地址有效性判断
==============================修改历史============================================ 1.0.10(Https版本)
【代码变更】
- 支持https
- 数据上报增加SSID字段
- 优化遍历数组删除元素的方法
==============================修改历史============================================ 1.0.9.3(Http版本)
【代码变更】
- 修复异步解析接口偶现crash问题
==============================修改历史============================================ 1.0.9.2(Http版本)
【代码变更】
- 修复localdns解析偶现crash
- 上报字段新增id,key以及SSID
- 外部应用上报增加clientIP字段
- localdns解析增加ipv6地址有效性判断
- 优化遍历数组删除元素的方法
==============================修改历史============================================ 1.0.9.1(Http版本)
【代码变更】
- 优化localdns超时处理逻辑
- 当httpdns成功后,立即返回,无需等待localdns结果
==============================修改历史============================================ 1.0.9
【代码变更】
-
增加异步接口
/** * 异步接口 * @param domain 域名 * @return 查询到的IP数组,超时(1s)或者未未查询到返回[0,0]数组 */ - (void) WGGetHostByNameAsync:(NSString*) domain returnIps:(void (^)(NSArray* ipsArray))handler;
==============================修改历史============================================ 1.0.8
【代码变更】
-
梳理代码逻辑,将接口返回类型由std::vector<unsigned char*>改为NSArray:
/** * 同步接口 * @param domain 域名 * @return 查询到的IP数组,超时(1s)或者未未查询到返回[0,0]数组 */ - (NSArray*) WGGetHostByName:(NSString*) domain;
-
enable module
==============================修改历史============================================ 1.0.7.8
【代码变更】
- 修复如服务端返回数据为非UTF8编码格式时解密会偶现crash的bug
==============================修改历史============================================ 1.0.7.7
【代码变更】
- 增加详细日志输出
- 修复偶现bug
- 优化内部代码逻辑
==============================修改历史============================================ 1.0.7.6
【代码变更】
- 去掉外层函数中不必要的超时等待逻辑
- 梳理逻辑,增加必要的日志打印,及注释
==============================修改历史============================================ 1.0.7.5
【代码变更】
- 去掉不必要的加解密功能
- 未配置TIME_OUT项时,默认给1s
- 修正上报逻辑,修复上报时dns字段为空的情况
- 新增unity接入文件
- 新增IS_TEST配置项
==============================修改历史============================================ 1.0.7.4
【代码变更】
-
返回结果更改为以下格式:固定返回长度为2的std::vector<unsigned char*>,其中,第一个值为解析到的ipv4地址;第二个值为解析到的ipv6地址,如不存在,则为0。
-
增加日志开关配置项
-
上报接口改为非实时上报接口
==============================修改历史============================================ 1.0.7.3
【代码变更】
- 增加异常处理代码
==============================修改历史============================================ 1.0.7.2
【代码变更】
- 如果plist文件中未配置TIME_OUT,默认为3s
==============================修改历史============================================ 1.0.7.1
【代码变更】
- 修复偶现bug
==============================修改历史============================================ 1.0.7
【代码变更】
-
更换灯塔版本,兼容MSDK2.14及以上版本
灯塔初始化代码更改为:
//已正常接入MSDK的游戏无需关注以下代码,未接入MSDK的外部APP调用以下代码注册灯塔 //****************************** NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:plistPath]; NSString *appid = dic[@"COOPERATOR_APPID "]; [BeaconBaseInterface setAppKey:appid]; [BeaconBaseInterface enableAnalytics:@"" gatewayIP:nil]; //******************************
-
支持only-ipv6
==============================修改历史============================================ 1.0.6
【代码变更】
-
接口调用方式改回同步方式
-
修复返回时偶现随机字符串的bug
==============================修改历史============================================ 1.0.5
【代码变更】
- 接口调用方式改为异步回调方式
==============================修改历史============================================ 1.0.4
【代码变更】
-
支持外部游戏调用。
-
外部游戏接入说明(内部游戏无需关注):
2.1 引入Demo中的MSDK.framework和MSDKFoundation.framework以及MSDKDns.framework
2.2 在info.plist添加如下配置项
Key | Type | Value |
---|---|---|
IS_COOPERATOR | Boolean | 外部应用填“YES” 内部应用填“NO” |
QQAppID | String | 腾讯内部应用对应的QQAppid |
COOPERATOR_APPID | String | 外部应用对应的上报appid,见key_ios.txt中 |
TIME_OUT | Number | 请求httpdns超时设定时间 单位:ms |
DNS_ID | String | 参照版本包中key_ios.txt文件中相应内容填写即可(腾讯内部应用可以不填) |
DNS_KEY | String | 参照版本包中key_ios.txt文件中相应内容填写即可(腾讯内部应用可以不填) |
2.3 在AppDelegate.m中引入头文件 #import <MSDK/MSDK.h>
2.4 在application:didFinishLaunchingWithOptions:加入注册灯塔代码
//已正常接入MSDK的游戏无需关注以下代码,未接入MSDK的游戏调用以下代码注册灯塔
//******************************
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
NSString *appid = dic[@"QQAppID"];
[AnalyticsInterface setAppKey:appid];
[AnalyticsInterface enableAnalytics:@"" gatewayIP:nil];
//******************************
2.5 在需要使用Dns的地方引入Dns头文件#import <MSDKDns/MSDKDns.h>,传入域名调用接口,具体调用可参考Demo中DnsVC.m dnsButtonDidClicked:方法
==============================修改历史============================================ 1.0.3
【代码变更】
1.支持iOS9编译,支持bitcode。
2.支持分线程调用。
==============================修改历史============================================ 1.0.2
【代码变更】
1.修改灯塔上报字段、上报逻辑。
2.修正LocalDns解析域名错误的问题。
==============================修改历史============================================ 1.0.0
【代码变更】
1.【NEW】新增如下两个接口:
/**
*
* @param domain 域名
* @return 查询到的IP数组,超时(3s)或者未未查询到返回空数组
*/
std::vector<unsigned char*> WGGetHostByName(unsigned char* domain);
/**
* Log开关
* @param enabled true:打开 false:关闭
*/
void WGOpenMSDKDnsLog(bool enabled);
【注意事项】
- MSDKDns.framework依赖于MSDK2.4.0i及其以上版本。