美文网首页iOS
iOS 解决微信分享显示“未验证应用”

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

作者: Joymerry | 来源:发表于2020-12-08 16:17 被阅读0次

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

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

    因为,本人项目中用到的是友盟的分享,所有要更新腾讯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 <UMCommon/MobClick.h>
    

    如果使用UMCAnalytics库的话,导入类

    #import <UMAnalytics/MobClick.h>
    

    所以我感觉应该是没啥问题的,大家可以根据自己的需求导入,这里只是给大家提醒一下。

    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<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler {
        return [WXApi handleOpenUniversalLink:userActivity delegate:self];
    }
    

    不实现该方法,就会出现返回跳转但是就是不能分享的问题。

    四、现在项目就能正常分享,但是你会发现还有“未验证应用”的标志

    iOS应用出现未验证应用的问题排查
    详细阅读文章,一步步排查,切记其中一条:

    未验证应用名单非实时更新,前一天有接入新SDK(1.8.6版本以上)并且有正确调用记录第二天才会移除出名单。

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

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

    相关文章

      网友评论

        本文标题:iOS 解决微信分享显示“未验证应用”

        本文链接:https://www.haomeiwen.com/subject/bktqgktx.html