iOS微信分享 未验证应用

背景:

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,文件不能有后缀。文件内容如下图:

iOS微信分享 未验证应用_第1张图片

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

iOS微信分享 未验证应用_第2张图片

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

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> * _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),然后下拉一下打开的网页。

iOS微信分享 未验证应用_第3张图片

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

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

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

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

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

    }];


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

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


iOS微信分享 未验证应用_第4张图片


iOS微信分享 未验证应用_第5张图片


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

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

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

你可能感兴趣的:(iOS微信分享 未验证应用)