美文网首页
iOS微信分享 未验证应用

iOS微信分享 未验证应用

作者: 等一个最好的自己 | 来源:发表于2020-06-09 11:31 被阅读0次

    背景:

    2020年3月20日起微信对旧版本 SDK 发起的分享增加“未验证应用”安全提示。所以导致很多用户分享的时候,会提示未验证应用。

    资料:

    微信开放平台的文档:

    https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html

    问题排查文档:

    https://docs.qq.com/doc/DZHNvSGJLS3pqbHNl?tdsourcetag=s_macqq_aiomsg

    我的app的背景:

    app微信分享接的友盟,其中用的是微信的精简版。登录用的微信官方平台的最新sdk1.8.7.1,分享的时候就会遇到应用未验证的情况。

    开始解决问题:

    1.配置 Universal Link

    创建一个文件命名一定要是apple-app-site-association,文件不能有后缀。文件内容如下图:

    其中"wechat"可以根据自己需求来写(实际上可以任意写为了区分多个app的)。上述两个ID,可以在苹果开发者中心查找,具体位置如下图,顺便将Associated Domains选中。

    保存文件,然后把文件放到服务器的根目录中(可读和下载状态都可以)。

    2.配置项目

    在开发者中心我们已经开启了Associated Domains,也要在xocode里面开启。targets->signing&capabilities->+capability->Associated Domains。然后Domins点击加号填入相应内容,内容格式为applinks:+ App的域名 (例如:applinks:wangyi.com,App域名实际上就是在微信开放平台设置的Universal Link的域名)。

    3.配置微信开发平台信息

    微信开放平台Universal Link要设置,App的域名(例如https://wangyi.com/wechat/)。

    4.项目plist文件

    sdk要求加上weixinULAPI。

    5.增加新方法

    -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{

        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

            NSURL*webUrl = userActivity.webpageURL;

            NSLog(@"continueUserActivity:%@",webUrl);

        }

        //当APP被UniversalLink调起后,

        BOOL ret = [WXApi handleOpenUniversalLink:userActivity delegate:self];

        return ret;

    }

    检测是否配置成功

    1.先检测Universal Link是否配置成功。

    上述四步配置好后,卸载app,然后重新跑一下项目。这时会重新下载apple-app-site-association文件。然后打开safari,输入Universal Link+(随便写)(如https://wangyi.com/wechat/aaa),然后下拉一下打开的网页。

    当出现这个条目,并且点击打开的时候能跳转到自己的app,说明Universal Link配置成功了。

    2.检测Universal Link是否认证成功

    在注册微信的方法后调用自检函数

    [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {

            NSLog(@"wechatSdkre %@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);

        }];

    如果自检函数能走到第6步,说明认证成功。

    如果授权登录没有二次弹框确认,分享除首次外不会二跳 (二跳和二次确认如下图)

    如果到这里,分享还是显示未验证应用的话,只有等待了。

    ps:本人都配置好,并且验证Universal Lin通过了,但是分享还是显示 未验证应用。等了三天后,我把友盟的微信分享删了,代码里改成了微信sdk的分享,第二天中午再次分享的时候,未验证应用消失了。

    可能有写的不清楚或者错误的地方,请大家指正。谢谢。如果有不懂的地方可以留言。

    相关文章

      网友评论

          本文标题:iOS微信分享 未验证应用

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