SDK介绍

  • iOS SDK用于iOS游戏联运,主要提供用户系统、支付系统、游戏攻略、游戏礼包等功能
  • iOS SDK适用于iOS操作系统9.0以上
  • Xcode 11.0以上

注意事项

  • 接口参数大小写敏感

  • 编码格式均为 UTF-8


前期准备

1.SDK接入技术人员仔细阅读该对接文档

2.CP提供支付回调地址服务端API文档

3.获取小氪平台配置参数:

字段 描述 类型
appId 游戏ID string
app_key 游戏KEY string
client_id 客户端ID string
client_key 客户端Key string
sdk_version 对接所使用的SDK版本号 string

接入步骤


SDK集成和配置说明

引入SDK_iOS Demo中的动态库(GameSDK.framework)、资源文件(DJSDK2.0.bundle、zh-Hans.lproj)到Xcode工程中。

具体操作流程如下:

1.XcodeFile —> Add Files to "Your Project",在弹出的Panel选中所需要的组件包—> Add。

注:选中“Copy items if needed”

add_sdk_ios

2.添加依赖:

libz.tbd、libsqlite3.tbd、UIKit.framework、JavaScriptCore.framework、WebKit.framework、CoreFoundation.framework、CoreTelephony.framework、SystemConfiguration.framework、AdSupport.framework

add_sdk_ios

3.动态库选项配置:

add_sdk_ios

4.URL Scheme设置:在项目中设置Target—> Info—>URL Type 中添加:

returnapp—djsdk{APP_ID},其中{APP_ID}为您申请的SDK对应的 "游戏ID"。

add_sdk_ios

5.白名单配置:工程info.plist中添加以下配置:

//打开QQ、微信权限配置(白名单配置)
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>mqq</string>
    <string>weixin</string>
</array>

//使用相机权限
<key>NSCameraUsageDescription</key>
<string>需要相机权限</string>

//麦克风使用权限
<key>NSMicrophoneUsageDescription</key>
<string>需要麦克风权限</string>

//保存账号密码照片到相册权限
<key>NSPhotoLibraryAddUsageDescription</key>
<string>保存账号和密码信息到您的相册,以防遗忘账号、密码</string>

//访问相册权限
<key>NSPhotoLibraryUsageDescription</key>
<string>需要读取相册权限</string>

//获取IDFA权限
<key>NSUserTrackingUsageDescription</key>
<string>为了更好点体验和适配您的手机,请允许使用idfa</string>

6.Enable Bitcode设置:在项目中设置Target—> Build Settings—>All 中搜索 Enable Bitcode,然后设置为NO。

add_sdk_ios

7.完成以上步骤后,对工程进行编译,如果编译有错误,则需设置:在项目中设置Target—> Build Settings—> Other Linker Flags 添加: -ObjC

add_sdk_ios

SDK API调用

前提:导入SDK依赖头文件 #import "
1.SDK初始化

启动app时候进行初始化SDK操作。

注:初始化是否成功会影响SDK后续功能操作,APP启动过程中如果初始化失败,有网情况下SDK后续会自动进行初始化,直到初始化成功;iOS没有提供初始化结果状态回调给游戏,游戏接入方可以默认只要调用了SDK初始化方法就初始化成功
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [GameSDK initWithAppID:appId    //游戏ID
                  clientID:client_id    //客户端ID
                 clientKEY:client_key    //客户端Key
                sdkVerSion:sdk_version    //SDK版本号
                ];
   return YES;
 }
2.APP进入后台、前台状态获取
//程序已经进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application {
    [GameSDK applicationDidEnterBackground:application];
}

//程序已经进入前台
- (void)applicationDidBecomeActive:(UIApplication *)application {
    [GameSDK applicationDidBecomeActive:application];
}
3.SDK登录-APP中调用登录面板
    [GameSDK login:^(id  _Nonnull response) {
            NSLog(@"SDK回调游戏登录成功:%@",response);

        /*
        //SDK实名认证-可选(根据实际商务沟通情况,采用哪边进行实名认证)
        [GameSDK authenRealName:^(id  _Nonnull response) {
                NSLog(@"实名认证回调给CP:%@",response);
        }];
        */

    } fail:^(NSString * _Nonnull failmsg) {
       NSLog(@"登录QfGameSDK失败:%@",failmsg);
    }];
4.创角-创建角色上报
注:创建角色,需要调用此API及时同步创角信息到SDK,type为:create
    [GameSDK type:create        //类型:创角
           roleId:@"角色ID"        //必须,角色ID
         roleName:@"角色名称"        //必须,角色名称
        roleGrade:@"0"        //必须,创角的时候对应角色等级
         serverId:@"区服ID"        //必须,区服ID
       serverName:@"区服名称"        //必须  区服名称
        djsuccess:^(id  _Nonnull response) {
        NSString *msg = [response objectForKey:@"msg"];
        NSLog(@"角色创建成功%@", msg);
    } djfail:^(NSString * _Nonnull failmsg) {
        NSLog(@"角色创建失败:%@",failmsg);
    }];
5.升级-角色等级升级上报
注:角色升级时,需要调用此API及时同步角色信息到SDK,type为:update
    [GameSDK type:create        //类型:升级
           roleId:@"角色ID"        //必须,角色ID
         roleName:@"角色名称"        //必须,角色名称
        roleGrade:@"0"        //必须,升级的时候对应角色等级
         serverId:@"区服ID"        //必须,区服ID
       serverName:@"区服名称"        //必须  区服名称
        djsuccess:^(id  _Nonnull response) {
        NSString *msg = [response objectForKey:@"msg"];
        NSLog(@"角色信息同步成功%@", msg);
    } djfail:^(NSString * _Nonnull failmsg) {
        NSLog(@"角色信息同步失败:%@",failmsg);
    }];
6.购买道具

道具购买支付结果-是否发放道具,以服务端回调查询结果为准 金额单位:元

    [GameSDK payWithProductId:productID        //必须,产品ID
                     roleID:@"角色ID"        //必须,角色ID
                   roleName:@"角色名称"        //必须,角色名称
                  roleGrade:@"1"        //必须,当前游戏角色等级
                   serverId:@"区服ID"        //必须,区服ID
                 serverName:@"区服名称"        //必须,区服名称
                productName:@"ios专用道具"        //必须,商品名称
                productDesc:@"道具仅能在ios下购买"        //必需,商品描述
                     attach:@"CP订单号"        //必需,CP扩展参数 (必传CP订单号)
                      money:@"648"        //必须,金额
                    success:^(id  _Nonnull response) {
        NSLog(@"支付成功-response:%@",response);
    } fail:^(NSString * _Nonnull failmsg) {
        NSLog(@"支付失败:%@",errorStr);
    }];
7.切换账号

SDK退出当前登录账号,进行切换账号操作

注:游戏需要切换账号登录情况下调用此API
    [GameSDK logOut:^(id  _Nonnull response) {
       NSLog(@"退出SDK成功,进行重新登录流程");
   } fail:^(NSString * _Nonnull failmsg) {
       NSLog(@"退出登录失败:%@",failmsg);
   }];
8.实名认证接口(此项游戏接入时需沟通确定:是否通过SDK弹出实名认证、还是游戏内部弹出实名认证)

游戏接入调用实名认证、获取实名认证状态。

注:需要在SDK登录完成后调用(游戏方可根据实名认证逻辑在适当位置弹出,eg:玩家进入游戏后,在游戏中玩了指定时间,比如1小时的情况下,调用此API来进行获取实名认证状态
    [GameSDK authenRealName:^(id  _Nonnull response) {
            //json格式(code:1->认证通过  -1->未认证;idnum:身份证号码,未认证的返回为空;age:年龄,未认证返回为空)
        NSLog(@"实名认证回调给CP:%@",response);
    }];

FAQ

1.控制台打印:初始化失败-接口校验不通过

检查初始化参数(appId、client_id、client_key、sdk_version)是否配置正确

2.支付失败-项目ID错误

检查内购产品是否配置正确

低版本系统的iPhone,检查是否退出了apple账号,并登录对应的沙箱账号测试

3.调起登录面板没看到注册账号入口

如果测试内购,使用账号:test5555 密码:222222 登录进行测试

如果测试第三方,使用账号:test6666 密码:222222 登录进行测试

如果需要账号注册入口,沟通联系发送app版本号配置即可

4.集成SDK后只有内购

使用本SDK,根据需求确认走内购还是第三方支付

涉及到游戏道具购买,上架期间一般设置为走内购

如需要测试第三方支付,双方沟通-配置对应测试账号使用第三方支付

5.支付成功后道具未到账

检查服务端对应的clientKey是否对应正确

检查支付回到地址是否正确

results matching ""

    No results matching ""