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

###########   补充  ############

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)、然后给它添加一个需要支持的项目,类型为字符串类型;

FBEF076A-611A-4B43-B8A9-F1825CC08FDA

各平台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

[:若同时使用QQQZONE,则直接添加本格即可]

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值