接入前,需要由龙图项目负责人完成渠道申报并在龙图后台进行配置,从而获取到该游戏的渠道参数、龙图的.cfg配置文件,直接加入工程(等同bundle资源).。
龙图 IOS SDK支持 iPhone、iPad、iPod Touch设备,要求armv7、armv7s或arm64架构,操作系统要求Mac要求Monterey以上,Xcode要求12以上,iOS SDK要求9.0以上。
Xcode->Project->Build Settings工程配置
[1] 添加库的连接参数
请在工程文件Build Settings处,找到Other Linker Flags,并添加以下内容
[2]其他配置参考下图
[1] 支持HTTP设置
ios9 下苹果要求 App 内访问网络必须使用 HTTPS ,现阶段不能马上改成 https。
请在 Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary.在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean,值设为 YES。如下图
[2] idfa权限设置
使用Xcode打包时,中访问相册和日历功能需要设置权限使用描述,如下图
<key>NSUserTrackingUsageDescription</key>
<string>idfa权限描述请联系运营获取</string>
[3] 去除系统冗余日志输出(非必须)
使用Xcode调试出现大量无用输出时请做以下设置,防止无用的系统日志在控制台输出,如下图
参数名称 | 必要性 | 类型 | 默认值 | 功能 |
---|---|---|---|---|
LTbase_GameResVersion | 必须 | String | 1.0 | 游戏资源版本号 |
LTbase_Debugmodel | 非必须 | Boolean | YES | 出包前请将其设置成NO。 主要用于查看控制台日志。 YES:调试模式 NO:出包模式 |
LTbase_GameOnline | 必须 | Boolean | YES | 游戏类型 YES: 网游 NO:单机 |
<key>LTbase_Debugmodel</key>
<true/>
<key>LTbase_GameOnline</key>
<true/>
<key>LTbase_GameResVersion</key>
<string>1.0</string>
服务端配置:请参考 通用接入文档—> 《SDK服务端接入说明文档》
功能说明
应用启动时,初始化SDK,并添加崩溃监控
接口定义
[[LTGameOCSDK shareInstance] LTSDKApplication:application didFinishLaunchingWithOptions:launchOptions];
接口示例
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//保证这一句在SDK的最前面
[[LTGameOCSDK shareInstance] LTSDKApplication:application didFinishLaunchingWithOptions:launchOptions];
//在下面添加其他逻辑
}
1、初始化第三方SDK,同时获取SDK所需要的初始化数据
/// 初始化
/// @param serviceId 产品serviceId ,通过技术支持获取
/// @param channelId 产品channelId ,通过技术支持获取
- (void)LTSDKInitServiceId:(NSString *_Nonnull)serviceId channelId:(NSString *_Nonnull)channelId;
[[LTGameOCSDK shareInstance] LTSDKInitServiceId:@"111111111" channelId:@"222222222"];
功能说明:
初始化成功上报
/// 初始化成功上报
- (void)LTSDKInitSucces;
[[LTGameOCSDK shareInstance] LTSDKInitSucces];
功能说明:
账号注册上报
/// 账号注册上报
/// @param userID 用户ID
/// @param userName 用户名
- (void)LTSDKRegisterEvent:(NSString *_Nonnull)userID userName:(NSString *_Nonnull)userName;
[[LTGameOCSDK shareInstance] LTSDKRegisterEvent:@"555555555" userName:@"shice"];
功能说明:
账号登录上报
/// 账号登录上报
/// @param userID 用户ID
/// @param userName 用户名
- (void)LTSDKLoginEvent:(NSString *_Nonnull)userID userName:(NSString *_Nonnull)userName;
[[LTGameOCSDK shareInstance] LTSDKLoginEvent:@"88888888" userName:@"ceshi"];
功能说明:
角色信息上报
/// 角色信息上报
/// @param gameInfo 角色信息
/// @param gameType 操作类型(登录或注册,通过传入枚举区分注册和登录)
- (void)LTSDKRoleInfoEvent:(LTParamOC *_Nonnull)gameInfo gameType:(int)gameType;
LTParamOC *roleInfo = LTParamOC.sharedInstance;
roleInfo.RoleId = @"111222333";
roleInfo.RoleName = @"juese";
roleInfo.ServerId = @"1001";
roleInfo.ServerName = @"fuwuqi";
roleInfo.RoleLevel = @"100";
roleInfo.RoleVipLevel = @"15";
//注册
[[LTGameOCSDK shareInstance] LTSDKRoleInfoEvent:roleInfo gameType:kOCGameRegister];
//登录
[[LTGameOCSDK shareInstance] LTSDKRoleInfoEvent:roleInfo gameType:kOCGameLogin];
功能说明:
下单上报
/// 下单上报
/// @param propId 道具ID
/// @param propName 道具名称
/// @param Price 道具金额(单位:分)
/// @param CurrencyType 道具货币类型(1 人民币,2 美元,3 日元,4 港币,8 台币,9 韩元)
/// @param orderId 订单号(游戏本次下单生成的唯一标识,如没有唯一标识可以是透传参数,都没有可传空)
/// @param time 下单时间,发生时间,格式为yyyyMMddHHmmss
/// @param timeStamp 下单时间,时间戳格式
/// @param detail 扩展信息,可以为空
- (void)LTSDKPaymentEvent:(NSString *_Nonnull)propId
propName:(NSString *_Nonnull)propName
Price:(NSString *_Nonnull)Price
CurrencyType:(NSString *_Nonnull)CurrencyType
orderId:(NSString *_Nonnull)orderId
time:(NSString *_Nonnull)time
timeStamp:(NSString *_Nonnull)timeStamp
detail:(NSString *_Nonnull)detail;
[[LTGameOCSDK shareInstance] LTSDKPaymentEvent:@"1004" propName:@"1元宝" Price:@"600" CurrencyType:@"1" orderId:@"12345678987654321"time:str timeStamp:timeSp detail:@"detail"];
功能说明:
自定义事件
/// 自定义事件
/// @param logId 日志ID
/// @param logKey 日志key
/// @param dict 日志内容
- (void)LTSDKSendLogWithLogId:(NSString *_Nonnull)logId
logKey:(NSString *_Nonnull)logKey
dict:(NSDictionary *_Nullable)dict;
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"1" forKey:@"roleLevel"];
[dict setObject:@"0" forKey:@"roleVipLevel"];
[dict setObject:@"0" forKey:@"updateType"];
[dict setObject:@"diamond" forKey:@"itemId"];
[dict setObject:@"钻石" forKey:@"itemName"];
[dict setObject:@"1" forKey:@"isPrecious"];
[dict setObject:@"100" forKey:@"itemCount"];
[dict setObject:@"255" forKey:@"remains"];
[dict setObject:@"199" forKey:@"custom"];
[[LTGameOCSDK shareInstance] LTSDKSendLogWithLogId:@"9" logKey:@"role-item-update" dict:dict];
功能说明
获取ServiceCode
//获取ServiceCode
- (NSString *_Nonnull)LTSDKGetServiceCode;
NSString *serviceCode = [[LTGameOCSDK shareInstance] LTSDKGetServiceCode];
功能说明
获取公告
//获取公告
- (void)LTSDKGetNotice;
[[LTGameOCSDK shareInstance] LTSDKGetNotice];
//引入并实现代理
@interface xxxxxxx ()<LTGameOCSDKDelegate>
@end
[LTGameOCSDK shareInstance].delegate = self;
//回调
- (void)ltNoticeTypeCallBackWithResult:(BOOL)result dict:(NSDictionary *)dict{
int type = [[dict objectForKey:@"type"] intValue];
int start = [[dict objectForKey:@"start"] intValue];
if (start == 100) {//100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[self showMessage:[dict objectForKey:@"openUrl"]];
}
if (result) {//true表示请求连接成功,false表示连接请求失败
if(type == 0){//type=0,代表登录公告(此SDK仅返回0登录公告)
if (start == 1) {//start=1s代表页面已打开,2代表已关闭,0代表失败---100为跳转游戏内部链接并关闭公告同时增加返回openUrl字段
[self showMessage:@"登录公告打开"];
}
else{
[self showMessage:@"登录公告关闭"];
}
}
} else {
if(type == 0){
[self showMessage:@"noticeCallBack登录公告失败"];
}
else{
[self showMessage:@"noticeCallBack失败"];
}
}
}
功能说明
礼包码接口
/// 礼包码接口
/// @param gameCode 礼包码
/// @param deliverUrl URL
/// @param extendParams 透传参数
- (void)LTSDKExchangeGameCode:(NSString *_Nonnull)gameCode deliverUrl:(NSString *_Nonnull)deliverUrl extendParams:(NSString *_Nonnull)extendParams;
[[LTGameOCSDK shareInstance] LTSDKExchangeGameCode@"礼包码": deliverUrl:@"" extendParams:@""];
//引入并实现代理
@interface xxxxxxx ()<LTGameOCSDKDelegate>
@end
[LTGameOCSDK shareInstance].delegate = self;
//回调
- (void)ltOnGamecodeResultWithResult:(BOOL)result code:(NSString *)code msg:(NSString *)msg {
NSString *des = [NSString stringWithFormat:@"result = %@ \n code = %@ \n msg = %@" ,result ? @"yes" : @"no" , code, msg];
if (result) {
NSLog(@"ltOnGamecodeResult success = %@",des);
}
else{
NSLog(@"ltOnGamecodeResult failed = %@",des);
}
[self showMessage:des];
}
功能说明
打开带导航条的webview(直接打开第三方地址,sdk对连接不作处理).
//打开带导航条的webview(直接打开第三方地址,sdk对连接不作处理).
- (void)LTSDKOpenThirdWebviewWithNavbarWithUrl:(NSString *_Nonnull)url;
[[LTGameOCSDK shareInstance] LTSDKOpenThirdWebviewWithNavbarWithUrl:@"https://www.baidu.com"];
上海中清龙图软件有限公司