关于微信分享后,提示“未验证应用”的解决办法
1.1 通用链接是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,
iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,
那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。
1.2 我们的项目中唤起第三方app一般是通过配置对应的URL Scheme的方式使用的,
微信SDK的最新版本openSDK1.8.6 由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。
1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验,提升使用过程中的安全性。
2.1 微信sdk 支持版本号 建议更新到最新 原则上 >= 1.8.6 即可
2.2 创建json文件 ,放在服务器根目录下,且必须支持https 根据官方提供可放在根目录下或者.well-known下,建议放在.well-known下,地址后不可以有.json后缀(切记)
如:https://域名/.well-known/apple-app-site-association
json文件内容 一般配置通配符,建议分开处理,存在一个域名多app的情况
如:
```{
"applinks": {
"apps": [],
"details": [
{
"appID": "TeamID.bundleID",
"paths": [ "/app1/*" ]
},
{
"appID": "TeamID.bundleID",
"paths": [ "/app2/*" ]
}
]
}
}
官方提供模版:[https://demo.dcloud.net.cn/.well-known/apple-app-site-association](https://demo.dcloud.net.cn/.well-known/apple-app-site-association)
2.6 代码支持 注册.返回
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[WXApi registerApp:WX_APP_ID universalLink:WX_APP_UniversalLink];
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler {
if ([userActivity.webpageURL.absoluteString haveString:WX_APP_ID]) {
return [WXApi handleOpenUniversalLink:userActivity delegate:self.wxApiDelegate];
}
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
[WXApi registerApp:WX_APP_ID universalLink:WX_APP_UniversalLink];
return YES;
}
3.1 检测方式 通过微信sdk 提供的检测
微信代码检测 七步骤.必须全部通过.注意测试后要及时去掉,不然会一直有二跳
[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult * _Nonnull result) {
NSLog(@"%@",@(step));
}];
3.2 通过Safari 检测
在浏览器里输入 https://域名/app1 是否可以出现如图(前提是重新编译一次app.)
3.3 通过 记事本或备忘录 域名
在备忘录里输入 https://域名/app1 是否可以直接打开app(前提是重新编译一次app.)
3.4 通过苹果提供的地址检测
此方法可以忽略,貌似大部分app检测都不会通过.
https://search.developer.apple.com/appsearch-validation-tool/
4.1 能否跳转到app和微信无关.和配置的json文件有关.如果发现无法跳转检查
链接地址是否正确.必须要按照官方要求
Xcode配置是否正确
开发者账号下是否配置正确
4.2 配置成功并且检测通过 后仍存在未验证应用
官方:需要等新版本放量上去让整体错误率下降到90%以下才会从未验证应用中移除。
例如:前一天你的App总共分享了100次消息到微信(微信以AppID来统计,只计算1.8.6以及以上版本的分享),其中正确的次数必须要高于10次。
https://docs.qq.com/doc/DZHNvSGJLS3pqbHNl
4.3 配置成功,第一次分享会出现二跳后不会再出现,如果继续出现则重新检查配置问题
建议重新走一遍流程
4.4 新增的json文件 非.josn 切记,只需要通过浏览器打开便可
官方提供的demo是支持下载的.实际上非下载也可.后端人员讲和浏览器有关.(我可能是个傻子)
4.5 关于TeamID.bundleID 很多网上说是直接在开发者账号下找teamID,这里建议
在Certificates, Identifiers & Profiles 下,AppID Prefix 使用这个提供的 如果是存在很久的项目这里有可能不显示TeamID,但实际上json文件必须要用这个
有小伙伴就遇到这个问题.所有的配置都正确.错在这里.
4.6 一个域名支持多app情况 多配置环境支持情况
微信公众平台目前支持一个测试环境.暂时没看到可以支持多环境(如果必须要测.可以iPhone和iPad分开测或许也可以)
4.7 微信检测很多都是走到第四步就结束了原因
可能是配置的地址链接有问题:检查https://域名/.well-known/apple-app-site-association 地址内容是否有问题
代码有问题:检查AppDelegate中代码是否支持
4.8 关于微信平台中Universal Link
https://域名/
注意如果你是一个域名多个app则后面需要加个app.但该Universal Link 需要和代码中注册的Universal Link保持一致
applinks则不需要多余处理
4.9 使用微信sdk测试后 需要及时注释掉测试代码块.否则会一直出现二跳
4.x 持续更新…
错误或需要补充请留言(thank u)