前言
接到微信那边的通知:微信支付将强制要求APP在2022年1月1日后升级微信OpenSDK到1.8.6版本以上。而升级OpenSDK到1.8.6以上必须配置https和使用Universal Link,不然无法使用微信SDK的注册id方法。本人已经查阅网上好多文章,但遗憾的是大部分文章都是旧版本的配置方式,将我引入歧途,导致我走了很多弯路。为了让大家少走弯路,也为了自己辛苦开发的日日夜夜,谨以此文祭奠逝去的岁月。
apple-app-site-association 设置
与以前的方法不同,必须将文件放在站点的.well-known目录中,文件的URL应该匹配以下格式:
https://<fully qualified domain>/.well-known/apple-app-site-association
其实,苹果只需要获取这个路径下的json。因此并不是文件下载下来就是成功的,而是打开上面的链接返回配置的json数据才算成功。
参考微信返回的json数据,(注意:微信配置json还是旧格式)。
https://weixin.qq.com/apple-app-site-association
apple-app-site-association 内容
iOS13以前旧版本
{
"applinks": {
"apps": [],
"details": [{
"appID": "你的TeamID.你的Bundle ID",
"paths": ["*"]
}]
}
}
iOS14以后新版本
{
"applinks": {
"details": [
{
"appIDs": [
"你的第一个APPTeamID.你的Bundle ID"
],
"components": [
{
"/": "/firstApp/*",
"comment": "Matches any URL whose path starts with /firstApp/"
}
]
},
{
"appIDs": [
"你的第二个APPTeamID.你的Bundle ID"
],
"components": [
{
"/": "/secondApp/*",
"comment": "Matches any URL whose path starts with /secondApp/"
}
]
}
]
},
"webcredentials": {
"apps": [
"你的第一个APPTeamID.你的Bundle ID",
"你的第二个APPTeamID.你的Bundle ID"
]
},
"appclips": {
"apps": []
}
}
本地测试
1.到 Certificates, Identifiers & Profiles 中 选中Identifiers 开启Associated Domains功能
2.Xcode配置好applinks:域名(注意不要带https://)
3.重新自动配置好证书,删除APP,重新安装。
4.在备忘录那边粘贴配置的链接。点击会自动跳转到自己生成的APP即表示通用链接配置成功了。链接举例:
https://<fully qualified domain>/firstApp/
参考资料如下:
苹果最新版配置通用链接文档 Supporting Associated Domains | Apple Developer Documentation
iOS 唤起APP之Universal Link(通用链接) - 简书 (jianshu.com)