在解决这个问题中消耗了将近两天时间,中间遇到各种问题,现在将解决问题的过程记录一下,给码友们提供参考,帮助解决问题。
一、将友盟第三方分享更新为最新版本
因为,本人项目中用到的是友盟的分享,所有要更新腾讯SDK只能是更新最新的友盟SDK。
1.将项目中的老版本SDK移除,一定要移除干净。
2.更新最新的友盟SDK。前两步可以参考:U-Share集成文档
这里特别强调一下,因为在集成文档的时候,使用的CocoaPods
#友盟分享
pod 'UMCCommon'
# U-Share SDK UI模块(分享面板,建议添加)
pod 'UMCShare/UI'
# 集成微信
pod 'UMCShare/Social/WeChat'
# 集成QQ/QZone/TIM
pod 'UMCShare/Social/QQ'
# 集成新浪微博
pod 'UMCShare/Social/Sina'
# 日志库(调试)
#pod 'UMCCommonLog'
# 友盟统计 6.1.0
#pod 'UMCAnalytics'
切记UMCCommon跟UMCAnalytics不能同时导入,刚开始笔者导入这两个库,项目一直报错:
Showing Recent Issues:158 duplicate symbols for architecture arm64
但是不知道哪里重复导入,最后才发现是上面两个库有重复类,不可以同时导入。这里我使用的UMCCommon,同样可以使用Mobclick类
#import
如果使用UMCAnalytics库的话,导入类
#import
所以我感觉应该是没啥问题的,大家可以根据自己的需求导入,这里只是给大家提醒一下。
3.导入成功之后,按照最新版的友盟文档在Appdelegate中进行参数配置,一定要注意微信注册Universal Link
// 注册微信
[WXApi registerApp:kWeiXAppId universalLink:@"https://~~/tolink/"];
二、配置Universal Link以及证书申请
首先推荐大家一个第三方专门生成Universal Link的网站:xinstall 里面详细介绍的有
Universal Link配置说明文档,可以根据配置说明详细去申请证书以及项目中完成配置。
如果公司自己生成Universal Link,这里推荐一篇文章,笔者感觉写的还不错,大家可以参考Universal Links
项目中配置Universal Link
大家可以详细阅读腾讯的官方文档:关于openSDK1.8.6的更新说明
特别要注意的就是里面的函数方法,一定要实现,后面会告诉大家具体原因。
三、调用微信分享出现的问题
1.点击微信分享没有反应
-canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"
解决办法:
在info.list中找到LSApplicationQueriesSchemes然后添加weixinULAPI项。实际在上文中详细阅读官网文档就有让添加,笔者当时不够细心,所以后续遇到该问题。
2.暂时没有影响,但是会打印错误信息
-canOpenURL: failed for URL: "tim://" - error: "未能完成操作。(OSStatus错误-10814。)"
这个问题,有解决办法,欢迎留言。
3.跳转微信之后又跳回app,控制台报错:PBItemCollectionServicer connection disconnected.
这个问题也是因为没有详细阅读官网文档,在官方文档中在appdelegate中会让实现Universal Links回调的代理方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
不实现该方法,就会出现返回跳转但是就是不能分享的问题。
四、现在项目就能正常分享,但是你会发现还有“未验证应用”的标志
iOS应用出现未验证应用的问题排查
详细阅读文章,一步步排查,切记其中一条:
未验证应用名单非实时更新,前一天有接入新SDK(1.8.6版本以上)并且有正确调用记录第二天才会移除出名单。
你可以第二天再分享试试,如果没解决,详细阅读上面文章进行排查。
切记,一定一定一定要仔细阅读官网文档,实际好多问题都是因为偷懒,不仔细看文档,丢三落四才出现的问题。