iOS 解决微信分享显示“未验证应用”

在解决这个问题中消耗了将近两天时间,中间遇到各种问题,现在将解决问题的过程记录一下,给码友们提供参考,帮助解决问题。

一、将友盟第三方分享更新为最新版本

因为,本人项目中用到的是友盟的分享,所有要更新腾讯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版本以上)并且有正确调用记录第二天才会移除出名单。

你可以第二天再分享试试,如果没解决,详细阅读上面文章进行排查。

切记,一定一定一定要仔细阅读官网文档,实际好多问题都是因为偷懒,不仔细看文档,丢三落四才出现的问题。

你可能感兴趣的:(iOS 解决微信分享显示“未验证应用”)