########### 补充 ############
sharesdk ios9 分享界面默认显示英文,跳坑测试,删掉多余本地化配置就可以了(留了三条),别问我为什么。如下图
######## 补充 END ############
开发环境:
Unity 4.6.9
Xcode 6.4
Xcode 7.1
IOS纯白菜,总之跑通了。。。。。。。。。
背景:unity3d+Sharesdk+Android 一切正常。Xcode7.1,Xcode6.4打开工程编译错误,再加上IOS9适配问题。
以下为经过多次跳坑,简单粗暴的经验:
1.Unity发布Xcode工程 (注意勾掉Show Unity Splsh Screen)
2.使用Xcode 6.4 打开工程且切换到ios sdk 8.4(不要直接ios9,否则后边引用的库找不到啊找不到)
3.将下载的sharesdk ios 版压缩包解压,将其下的sharesdk 拖拽到工程
4.将以下全部引用,别问为什么
5.修改代码
打开unityappcontroller.mm文件。加入头文件sharesdk/sharesdk.h,
将以下代码替换至截图位置。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url
{
return [ShareSDKhandleOpenURL:url wxDelegate:nil];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [ShareSDKhandleOpenURL:url sourceApplication:sourceApplication annotation:annotationwxDelegate:nil];
}
替换以下代码。否则无法弹出分享界面。
6.添加URL Type
##################### 关闭Xcode6.4工程,保存备份 #######################
7.使用Xcode7.1打开工程,切换到ios 9.1后,BitCode指定为否
8.iOS9适配1:
9.iOS9适配2:
添加Scheme白名单。
问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。
具体方法:
1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。
2)、然后给它添加一个需要支持的项目,类型为字符串类型;
各平台OpenURL白名单说明 | |||
新浪微博 |
| ||
腾讯微博 |
| ||
豆瓣 |
| ||
开心网 |
| ||
微信 |
| ||
易信 |
| ||
支付宝 |
| ||
|
| ||
QZONE |
[注:若同时使用QQ和QZONE,则直接添加本格即可] | ||
Google+ |
| ||
人人网 |
| ||
|
| ||
|
| ||
|
| ||
|
| ||
|
| ||
|
| ||
Line |
| ||
KakaoTalk |
| ||
KaokaoStory |
| ||
|
| ||
Tumblr |
| ||
非平台类,如短信,复制,邮件等 |
| ||
必看注意: | |||
1.在iOS9中,如果没有添加上述白名单,系统会打印类似如下提示: .-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图) 如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ等。 | |||
2.添加完上述所需的名单,系统依然会打印类似信息: .-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null” 这是系统打印的信息,目前是无法阻止其打印,即无法消除的 | |||
3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。 |
END