【MoboSdk】cocos2dx越南渠道IOS版MoboSdk接入总结一:实现SDK界面初始化
首页 > 游戏开发技术 > 渠道SDK    作者:闭眼就天黑   2016年3月31日 19:52 星期四   热度:4481°   百度已收录  
时间:2016-3-31 19:52   热度:4481° 

sdk要求是xcode7以上版本,所以注意自己的xcode版本。。

===============================================================

1、复制MoboSdk文件夹到项目proj.ios_mac路径里,

 

 

xcode工程里 添加 文件。如下图,选择groups。

cocos2dx越南渠道IOS版MoboSdk接入总结2.png

cocos2dx越南渠道IOS版MoboSdk接入总结3.png

 

 

2MoboSDK 添加所需的framework

 

项目-> Build Phases -> Open Link Binary With Libraries -> 点击 (+) 打开framework. 选择framework :

CoreTelephony.framework

MessageUI.framework

StoreKit.framework

SystemConfiguration.framework

AssetsLibrary.framework

libc++.tbd

AdSupport.framework

libsqlite3.tbd

libz.tbd

libresolv.tbd

CoreData.framework

libicucore.tbd

SafariServices.framework

CoreMotion.framework

MediaPlayer.framework

AddressBook.framework

以上是文档提供的所要添加的framework,选择 (Add)按钮添加framework 到工程。这里有坑出现了,添加完这些这里可能会报错,sdk给的例子是oc的项目,我们的项目是cocos2dx的,可能会有差异,这里我踩坑了,还需要添加几个framework。

GameController.framework

iAd.framework

添加好后,如下图所示。

 

 3.添加所需的设定:
 在 项目-> Build Settings, 找 “other linker flags” 并添加 -ObjC 到 Other Linker Flags 设置里.

cocos2dx越南渠道IOS版MoboSdk接入总结4.png

 

4.修正file .split文件。

配置参数在 项目->Info,修改参数,这里需要在文档目录里查看configinfo.txt文档,


配置如下: 

(1)、参照configinfo.txt配置Bundle identifier 的值

2)、添加FacebookAppID,参照configinfo.txt赋值

(3)、添加M2ClientID参照configinfo.txt赋值

4)、 添加  NSLocationAlwaysUsageDescription,设置值为空

cocos2dx越南渠道IOS版MoboSdk接入总结6.png

 

(5)、添加 NSAppTransportSecurity  ,属性NSAllowsArbitraryLoads 值为 YES

 

添加好后,变成这样了,这里我也没搞明白,和文档给的图显示不一样的。但是例子也是变的。

(6)、 添加 LSApplicationQueriesSchemes 设置type为Array,配置21个item值。

fbapi

fbauth2

fb-messenger-api

fbshareextension

vn.mecorp.mobo.iwin

vn.mecorp.bog

vn.mecorp.mobo

fb381650398662512

vn.mecorp.aow

vn.mecorp.giftcode

fb1445004959133682

vn.mecorp.hiepkhach

vn.mecorp.bathienha

vn.mecorp.holywar.thanhchien

vn.mecorp.narutoko

mestudiocat

studioochu

vn.mecorp.eden

vn.mecorp.monggiangho

vn.mecorp.phongthan

vn.omga.giftcode

上面是文档给的值,直接配置进去。如图。

cocos2dx越南渠道IOS版MoboSdk接入总结8.png

5、添加调用MoboSdk的代码。

由于例子是oc的项目,所以这里为以cocos2dx为例,可能稍微和文档不一样,本人也是踩坑刚爬出来。如果是cocos2dx项目接sdk,以本片文档为准。

(1)、在项目里,展开ios文件夹。如下图。

cocos2dx越南渠道IOS版MoboSdk接入总结1.png

 

(2)、 AppController.mm文档里面

#import “MoboSdk.h”

 

在函数 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

添加下面代码段:

[MoboSdk initInformation];

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[[MoboSdk getInstance] handleOpenUrl:url];
[[MoboSdk getInstance] handleUrlForSocialNetwork:url sourceApplication:sourceApplication annotation:annotation];
return YES;
}

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[[MoboSdk getInstance] didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
  }
 
-(void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
[[MoboSdk getInstance] didRegisterForRemoteNotificationsWithDeviceToken:nil];
}

cocos2dx越南渠道IOS版MoboSdk接入总结1.png

cocos2dx越南渠道IOS版MoboSdk接入总结2.png

(3)、在RootViewController.h 文档里,添加下面代码段

#import "MoboSdk.h"

 添加<MoboSdkDelegate>。如图所示:

(4)、在RootViewController.mm 文档里,添加下面代码段

- (void)viewDidLoad {
[super viewDidLoad];
 
[MoboSdk getInstance].delegate = self;
[[MoboSdk getInstance] initWithViewController:self];
 
NSString *info = @"{\"character_id\":17,\"character_name\":\"BALENO\",\"server_id\":0}";
[[MoboSdk getInstance] setGameInfo:info];
 
}
//viewDidLoad这里未调用到,可能又是坑,最后在说怎么解决,
 
-(void) userLoginWithAccessToken:(NSString *) access_token{
 
}

 

根据这个 access token,游戏客户端将 access token发送到游戏服务器.

然后游戏服务器调用我们服务器的verify_access_token函数来生成MoboID.

 

• 添加下面的函数来获取用户登出MoboSDK时的callback ,然后在函数里面需要调用game logout function.

-(void) userDidLogout{
}

 

到这里我们都是针对文档给的说明来接的sdk。这边代码文件名称和官方文档给的不一样,参照本文即可。 这里最后说的 viewDidLoad 代码段问题,先留个坑让大家踩一下,我们现在在模拟器run下接过sdk的项目。

不得不说ios编译比vs快多了,这里运行失败了,错误如下。

cocos2dx越南渠道IOS版MoboSdk接入总结3.png

我们可以百度下 _kUTTypeTagSpecificationKey 错误,发现答案真不好找。

我这里添加了 MobileCoreServices.framework文件解决了。我也不知道为什么。

 

解决了错误我们可以成功运行到模拟器了,是不是都快被自己感动哭了。别急,你有没有发现sdk的初始化界面没有出现?这里我纠结了快一星期,各种问人,都没有一点实际的。还记得我们留悬念的地方吗? 找到那里。

 

在RootViewController.mm代码文件里,viewDidLoad这个地方没有执行,这个函数我没测能不能不要,我们把函数里的

[MoboSdk getInstance].delegate = self;
[[MoboSdk getInstance] initWithViewController:self];

 

复制到AppController.mm文件里的初始化里。如图,修改self 为_viewController。

cocos2dx越南渠道IOS版MoboSdk接入总结4.png

 

我们在run下项目,看看成果后的项目吧,这时候我们才能被自己感动哭。the end。二〇一六年三月三十一日记。

Object-C与C++混编初始化MoboSdk获取AccessToken自动登录1.png

 

补充下一篇

【MoboSdk】cocos2dx越南渠道IOS版MoboSdk接入总结二:

Object-C与C++混编获取AccessToken实现登录

http://www.byjth.com/sdk/54.html

二维码加载中...
本文作者:闭眼就天黑      文章标题: 【MoboSdk】cocos2dx越南渠道IOS版MoboSdk接入总结一:实现SDK界面初始化
本文地址:https://www.byjth.com/sdk/53.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
你好前辈..能否请教你一些关于接sdk的问题..方便给联系方式吗..谢谢!
@fanxx:我也才接触一段时间,算不上前辈。。

返回顶部    首页    手机版本    版权所有:闭眼就天黑专栏_技术博客_个人学习总结
    站长: 闭眼就天黑    搜索cocos2dx主题 技术支持:闭眼就天黑   皖ICP备14007736号-1  

皖公网安备 34132102000107号

   sitemap