iOS13适配篇:微信openSDK1.8.6更新导致不能进行微信登录和分享问题解决方案

2020/06/03 14:50
阅读数 402

微信官方声明:
openSDK1.8.6 由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。 1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验,提升使用过程中的安全性。 我们建议开发者使用新版本SDK测试时,覆盖测试微信7.0.7版本、iOS12以及苹果新推出的iOS13,以验证所使用的接口的功能性和可用性。

微信开放平台官方更新文档

背景
随着iOS13系统的正式推送,各家第三方SDK都对其或多或少进行了更新适配,但在微信SDK更新后,导致APP突然不能跳转微信进行登录和分享了,本篇文章是适配踩坑之作,供参考。

2019/09/29更新
经过尝试,不知道微信的SDK是怎么更新的,好像并不需要Universal Links支持就可以,大家可尝试一下步骤,如不行继续往下看即可:

注册时填入“https://”即可(注意:经过尝试,这里的universalLink必须和微信后台填入的一致,直接这样填是不可行的,只是单纯能调起微信,无法分享和登录,建议大家还是按下面步骤来操作吧)
[WXApi registerApp:@"xxx" universalLink:@"https://"];
1
在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如0x1所示)
在微信后台配置Universal Links,链接符合要求即可。
以上步骤若仍不能解决跳转微信问题,可继续看如下的踩坑之旅。

环境
Xcode10.1,iOS12.4

0x1
更新SDK1.8.6后,微信的API发生了少许变更,其中注册的API需要传一个Universal Links,因为我们的APP并不需要支持,所以想着直接传了nil,如下:

[WXApi registerApp:@"xxx" universalLink:nil];
1
按照新API更改编译通过、运行。发现不能微信登录和分享。点击后无法跳转微信,且报错如下:

-canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"
1
回看一下微信的文档发现,可能需要进行这样的配置:

按此配置完成后,仍然不能跳转,且报错:

-canOpenURL: failed for URL: "weixinULAPI://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
1
但是官方文档并没有此错误编号-10814,陷入了沉思。

0x2
仔细阅读微信声明的更新文案后,想着,难道必须支持Universal Links才行吗?尝试配置试试看。参考了其他博主配置步骤:

iOS9 Universal Links踩坑之旅,移动应用之deeplink唤醒app
苹果官方文档
其实上面博主写得已经挺明确了,但是中间还是遇到一些问题,这里我贴出我的配置供大家参考:

apple-app-site-association文件

Xcode配置
有两点原因使我想着自己暂时把apple-app-site-association文件上传到阿里云进行测试

自己测试不想麻烦后台帮忙传
阿里云的OSS支持https,而我们测试服不支持https,还得拿证书去配置,麻烦
Universal Links配置OK后,尝试了,能直接跳到我们的APP了,所以至此我们的APP已经支持Universal Links。

0x3
在微信后台配置Universal Links,以为需要审核,然而并不用,直接生效了。这里的链接有要求,已/结尾

最终配置:


最后
修改微信注册API,运行尝试看此方法的返回值是不是YES。只有返回YES才算OK,如还不行,可能微信后台有延迟,因为它说它会进行比对的。过几分钟再尝试,应该问题不大了

[WXApi registerApp:@"xxx" universalLink:@"你的微信后台配的Universal Links"];
1
到这里,你已经成功完成了微信openSDK1.8.6对iOS13系统的适配工作。微信登录和分享功能已正常。恭喜?
 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部