果安SDK-Objective-C(IOS)接入文档
一、简介
1.SDK功能简介
统一SDK是为了快速接入IOS个渠道所使用的中间件,需要配合IOS统一打包工具一同使用。其目的是一次接入,快速生成各个渠道的游戏安装包。
2.兼容性
支持iOS7.0 以上的真机环境。其他系统需要进行测试。(支持arm64、armv7)
3.开发环境兼容性
硬件:macbook 或者苹果一体机 10.10系统以上。苹果移动设备iphone,ipad,ipod。
软件:安装XCode6.0 以上版本。
4.基本流程
登录流程图
支付流程图
二、接入流程
STEP 1 为游戏申请APP ID 和 APPKEY
为每款游戏申请一个APP ID 和 APPKEY
STEP 2 添加SDK
将YZUniteSDK_FW.framework 拷贝到开放目录下,然后将YZUniteSDK_FW.framework 拖拽到工程导航视图的Frameworks 目录下。完成后SDK 就被加入到了工程中,依赖库添加如图
STEP 3设置APP ID 和 APPKEY
在工程中的plist中添加GuoAnAppId和GuoAnAppKey两个字段并填写游戏的appId和appKey,如图:
STEP 4设置Other Linker Flags 为-ObjC
STEP 5设置屏幕方向
请支持全部方向
STEP 6 添加SDK初始化代码(必须)
1.appId
用来唯一标识您的游戏
2.appkey
游戏密钥
3.初始化代码
开发者可以通过[[YZUniteSDKPlatform sharePlatform] setUniteSDKDelegate:]方法手工初始化SDK和设置SDK的代理;只有在SDK正常初始化以后,SDK的其他API才可以正常调用。
注意:初始化是使SDK开始工作的关键,不进行初始化就对其他接口进行调用,会引发程序崩溃的严重危险。请开发者一定要注意。
STEP 5 添加调用方法
参考“三、统一SDK调用方法”
STEP 6 进行数据测试
调用方法添加完毕后,需要使用IOS打包工具进行打包,以确保打包的正确。
三、果安SDK调用方法
1. 设置SDK的代理(必须设置)
用途和用法
用于设置代理监听渠道SDK的登录和登出事件
接口说明
-(void) setUniteSDKDelegate:(id) delegate;
参数说明
delegate : 遵守YZUniteSDKDelegateProtocol协议的代理对象
示例代码
[[YZUniteSDKPlatform sharePlatform] setUniteSDKDelegate:self];
2. 实现代理方法
用途和用法
用于监听渠道SDK的登录和登出。登录代理方法当渠道SDK登录成功后进行调用并返回相应的渠道参数。登出代理方法当用户点击渠道SDK的注销操作时调用,通知游戏退出登录
登录代理方法说明
-(void)loginWithSessionId:(NSString *)sid userId:(NSString *)uid account:(NSString *)acc ext:(NSString *)ext;
登录代理参数说明
sid 渠道返回的token
uid 渠道返回的id
acc 渠道返回的acc
ext 扩展参数
注意:cp需要把以上参数通过post请求发给服务端进行校验,详情请看服务端接入文档。
登出代理方法说明
-(void)LogoutNotification;
3. 显示登录界面
用途和用法
用于弹出渠道的登录界面
接口说明
-(void)showSDKLoginPage;
示例代码
[[YZUniteSDKPlatform sharePlatform] showSDKLoginPage];
4. 注销接口/切换账号
用途和用法
用于注销/切换渠道的当前用户。
接口说明(GALoginSDKProtocol协议)
-(void) logoff;
示例代码
[[YZUniteSDKPlatform sharePlatform] logoff];
5. 显示用户中心
用途和用法
用于显示渠道SDK的用户中心。
接口说明(GALoginSDK类)
-(BOOL) enterSNSCenter;
示例代码
[[YZUniteSDKPlatform sharePlatform] enterSNSCenter]
6. 支付接口
用途和用法
用于调出渠道的支付界面,并实现支付。
接口说明
-(void)paymentWithProductName:(NSString *)name Money:(int)money CoinRate:(int)rate OrderId:(NSString *)orderId RoleId:(NSString *)roleId Account:(NSString*) acc ServerId:(int)serverId ;
参数说明
name 商品名称
money 商品价格,单位RMB
rate 游戏币和RMB的兑换比率,如1元兑换10游戏币,则填写10
orderId 订单ID
roleId 角色ID,CP自定义
Account 账号,由登录校验后台,服务器返回的accout字段
serverId 服务器ID
示例代码
[[[YZUniteSDKPlatform sharePlatform]] paymentWithProductName:"月卡" Money:25 CoinRate:10 OrderId:@"123456789" RoleId:@"123456789" Account:@"123456789" ServerId:@"1"];
7. 进程间跳转(必须调用)
用途和用法
用于调用第三方app使用,不调用该方法,游戏会闪退。需要在IOS的生命周期函数中调用
接口说明
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
参数说明
application 应用application对象
url 跳转的url
sourceApplication 跳转的sourceApplication
annotation 跳转动画对象
示例代码
-(BOOL)application:(UIApplication
*)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation //IOS的生命周期函数
{
……
return [[YZUniteSDKPlatform sharePlatform] application: application openURL: url sourceApplication: sourceApplication annotation: annotation]; }
8. 应用回到前台(必须调用)
用途和用法
用于监听应用由后台重新回到前台,在IOS生命周期函数中调用
接口说明
-(void)applicationWillEnterForeground:(UIApplication *)application;
参数说明
application 应用application对象
示例代码
-(void)applicationWillEnterForeground:(UIApplication *)application
{
……
[[YZUniteSDKPlatform sharePlatform] applicationWillEnterForeground: application];
……
}
9. 获取渠道ID
用途和用法
用于获取在在后台配置的渠道id。
接口说明(GALoginSDK类)
-(NSString*)getOpId;
示例代码
[[YZUniteSDKPlatform sharePlatform] getOpId]
10. 获取sdkID
用途和用法
用于获取sdkID。
接口说明(GALoginSDK类)
-(NSString*)getSDKId;
示例代码
[[YZUniteSDKPlatform sharePlatform] getSDKId]
四、统一SDK选择调用方法
1.游戏版本检测
用途和用法
用于检测游戏版本
接口说明
-(NSString*)versionUpdateWithAppVersion:(int)appVersion resVersion:(int)resVersion;
参数说明
appVersion : 游戏的版本号
resVersion : 资源的版本号
示例代码
[[YZUniteSDKPlatform sharePlatform] versionUpdateWithAppVersion:1000 appVersion resVersion:1000];
2. 获取服务器列表
用途和用法
用于获取游戏服务器的列表
接口说明
-(NSString*)getServerListWithUid:(NSString*) uid resVersion:(NSString*) version;
参数说明
uid : 登录回调时返回的uid
resVersion : 游戏资源版本号
示例代码
[[YZUniteSDKPlatform sharePlatform] getServerListWithUid:@”1234” resVersion:@”100”];
3. 上报进入游戏服务器ID
用途和用法
用于上报玩家进入的游戏区服
接口说明
-(void)enterServerWithSid:(NSString*) sid uid:(NSString*)uid;
参数说明
sid : 服务器ID
uid : 登录回调时返回的uid
示例代码
[[YZUniteSDKPlatform sharePlatform] enterServerWithSid:@”1”uid resVersion: @”1234”];
4. 获取游戏公告
用途和用法
用于获取游戏公告
接口说明
-(NSString*)updateGameNoticeWithMD5:(NSString*) md5;
参数说明
md5 : 游戏公告的md5码
返回说明
返回获取游戏公告的文件url地址
示例代码
[[YZUniteSDKPlatform sharePlatform] updateGameNoticeWithMD5:@”md5”];