缓存旧版本问题
在sharesdk新的v3接口和文档中给出了新的衔接方法, 但我发现置入的方式会出错, 不会显示出新api的功能
于是我查找build setting的sharesdk path, 确实让我找到了
在framewok search paths和libarary search paths 中都存在旧版本的索引目录, 而我移除旧版本时并没有扔到废纸篓, 只是移除引用, 但是这个xcode 也是犯懒, 不给我清理干净, 貌似很多其他引擎改版也是这样, 真的是很讨厌
dylib与tbd问题
这不是sdk的问题, 是官方在xcode7中将dylib改为了tbd后缀
来自:http://bbs.mob.com/thread-17142-1-1.html
文档和api 不一致
文档显示不全
为了看全文档代码, 我还需要复制粘贴到其他文本编辑器去看清楚
facebook改版
提示1: 按照所有方法但是测试帐号不成功, 我把facebook退出帐号, 并删了sharesdk所在的应用, 最后成功分享
提示2: 必须填写有效信息, 并通过完整分享测试, 提交ipa给facebook(不明白为啥要ipa包, 苦逼给他们上传吧), 最后才能提交审核
参考:
http://bbs.mob.com/forum.php?mod=viewthread&tid=8135
http://bbs.mob.com/forum.php?mod=viewthread&tid=7859
提交时出现CFBundleExecutable Key错误:
这是因为sharesdk中包含了qq的sdk中info.plist的错误
删掉qq的sdk中info.plist的这个关键字:
删掉这行 Executable file, 记住不是项目本身的info.plist
解决方案来自:
[Cocos2d-x 升级IOS9错误解决方案]
Unexpected CFBundleExecutable Key.The bundle atXXXX
错误或者成功提示不支持国际化
只能简陋的写个判断
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
NSDictionary* temp = [NSLocale componentsFromLocaleIdentifier:currentLanguage];
NSString * languageCode = [temp objectForKey:NSLocaleLanguageCode];
BOOL isChinese = NO;
if ([languageCode isEqualToString:@"zh"]){
isChinese = YES;
}else{
isChinese = NO;
}
file not found
这样的错误是因为头文件路径Header Path没有设置好, 本来xcode是能自动导入文件夹路径, 但是有时候抽风, 你也没办法, 只能手动导入:
搜索search paths:
framework search paths中包括:
library search paths中包括:
header search paths中包括:
参考:
http://blog.youkuaiyun.com/u010622887/article/details/45056575
缺少frameworks:
必须添加
libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework
新浪微博
ImageIO.framework
QQ好友和QQ空间
libsqlite3.dylib
微信
libsqlite3.dylib
Google+
CoreMotion.framework
CoreLocation.framework
MediaPlayer.framework
AssetsLibrary.framework
AddressBook.framework
Ipad分享窗口的问题:
相对于iphone, ipad必须有一个对应的子view对象来进行弹窗, iphone是全屏上面叠放的, 两个叠加方式有所不同
所以, 分享的时候, iphone可以不写任何子对象
ShareSDK showShareActionSheet:nil ....
但是ipad不写会出问题, 所以在这里增加一个非常小的无效按钮, 来充当子view, 即可
UIButton* bt = [[UIButton alloc]initWithFrame:CGRectMake(pot.x, pot.y, 1, 1)];
[viewController.view addSubview:bt];
ShareSDK showShareActionSheet:bt ....
另外子view的位置大小都是影响弹窗的位置的, 所以需要发送你cocos2dx中按钮的坐标, 记住, cocos2dx内部坐标系是由下而上, 而GL绘制坐标系是从上至下, 所以发送的时候需要进行一次转换
CCDirector::sharedDirector()->convertToGL( btShare->getPosition() );
//or v3
Director::getInstance()->convertToGL( btShare->getPosition() );
NSConcreteMutableData wbsdk_base64EncodedString
在集成这句话的时候 报错
//当使用新浪微博客户端分享的时候需要按照下面的方法来初始化新浪的平台
[ShareSDK connectSinaWeiboWithAppKey"40XXXXXXX"
appSecret"edab51c34263bd02XXXXXXXXX"
redirectUri"http://www.sharesdk.cn"
weiboSDKCls:[WeiboSDK class]];
[NSConcreteMutableData wbsdk_base64EncodedString]: unrecognized selector sent to instance 0x175a8490
目前只能使用web端分享新浪微博。。。
打开Build Settings,在Other linker flags中加入-ObjC标识。注意 O和C 大写
facebook第三方登陆,出现“所提供的网址不被应用程序配置所接纳”错误
在请求facebook授权时,返回如下错误:#1016 所提供的网址不被应用程序配置所接纳。应用程序的设置不允许一个或多个所提供的链接。它必须与网站的URL或Canvas的URL相符,或该域必须是应用程序的一个域的子域。
解决:Facebook应用控制面板中“设置>高级”有“ Valid OAuth redirect URIs”设置项,这里填写的地址要与程序中设置的授权返回页一致。
PS: 审核中的app无法修改任何选项