您的位置:首页 > 移动开发 > Unity3D

Unity3d+ShareSDK+IOS9.1 编译错误(备忘)

2015-12-03 18:38 676 查看
###########   补充  ############

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白名单说明
新浪微博
sinaweibo,
sinaweibohd,
sinaweibosso,
sinaweibohdsso,
weibosdk,
weibosdk2.5
[后两个若导入新浪SDK则需要]
腾讯微博
TencentWeibo,
tencentweiboSdkv2
[控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]
豆瓣
无需配置
开心网
无需配置
微信
wechat,
weixin
易信
yixin,
yixinopenapi
支付宝
alipay,
alipayshare
QQ
mqqOpensdkSSoLogin, 
mqqopensdkapiV2,
mqqopensdkapiV3,
wtloginmqq2,
mqq,
mqqapi
QZONE
mqzoneopensdk, 
mqzoneopensdkapi,
mqzoneopensdkapi19,
mqzoneopensdkapiV2,
mqqOpensdkSSoLogin,
mqqopensdkapiV2,
mqqopensdkapiV3,
wtloginmqq2,
mqqapi,
mqqwpa,
mqzone,
mqq
[注:若同时使用QQ和QZONE,则直接添加本格即可]

Google+
googlechrome, 
googlechrome-x-callback,
hasgplus4,
com.google.gppconsent,
com.google.gppconsent.2.2.0,
com.google.gppconsent.2.3.0,
com.google.gppconsent.2.4.0,
com.google.gppconsent.2.4.1
人人网
renrenapi,
renrenios,
renreniphone,
renren,

以及在使用人人SDK时所需配置的URL
Scheme,例如:rm226427com.mob.demoShareSDK
Facebook
fbauth2
Twitter
无需配置
Pocket
pocket-oauth-v1
Pinterest
pinit
Instagram
instagram
WhatsApp
whatsapp
Line
line
KakaoTalk
kakaolink
KaokaoStory
storylink
LinkedIn
无需配置
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: