最近老大要求在App里加这个功能,于是乎就研究了一下。
网上可以参考的文章很多,比如:
建议看官方文档,上面会有很多注意事项。其他都差不多,这里只总结下需要注意的点:
1.apple-app-site-association文件不能带后缀,务必把".json"的后缀去掉!有些人的电脑是隐藏文件后缀的,这要格外注意;
2.apple-app-site-association一定要传到域名根目录下;
3.WebServer需要支持https,且https使用有效的证书(是私密链接)。笔者在这里卡了很久,原因就是后台给配的https使用无效的证书,导致应用安装的时候不能正确的下载apple-app-site-association文件;
4.如果想测试这个功能,可以让后台搭一个测试服务器,并配置虚拟主机生成域名,然后iOS这边通过host访问域名就可以了。注意"applink:"后面写的一定是域名,不能是IP;
5.抓包的结果显示,网络顺畅的情况下,应用会在在刚安装(不是打开)的时候会去applink中的地址下载apple-app-site-association文件,所以如果需要测试,请保证网络通畅;
6.当所有都准备好,需要测试该功能的时候,只需要在记事本或短信中输入App能识别的链接,然后直接点击或是长按就可以了,直接点的效果是跳转到你的App,然后右上角是“去网页”的箭头,长按的效果是弹出的菜单中第二项是“在'XXX'中打开”,这也代表着成功。直接在Safari中输入链接是无效的,必须从一处跳入才可以(比如上一级网页)。
7.苹果有个网址(这里)可以检测你的apple-app-site-association是否是有效的,准备好了可以测试一下。
8.测试的时候,建议使用dev证书打包,之后安装到手机上测试功能。未安装应用的情况下直接在手机上跑好像也是可以的,因为抓到过请求。
9.如果你有问题,但上面没有列出,Stackoverflow上面有个问题,可以看下其他人的建议。
可能写的有出入或是不全,欢迎大家补充。
更新:
1.如果需要支持此功能,需要在开发者中心做配置。具体是这样:开发者中心->Identitiers->App IDs->需要支持的应用App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了。参考下图
2.当你在项目targets->Capabilities->Associated Domains中配置app link之后,系统会自动帮你写入.entitlements文件,所以不需要自己去手动加。需要注意的是,有人遇到过.entitlements文件没有被加入工程的,这也会产生问题,需要手动把.entitlements加入工程。
3.apple-app-site-association文件里有个paths字段,这个是用来控制可识别链接的,星号的写法代表了可识别域名下所有链接。这篇博客里有很多其他公司的例子,可以参考一下。
网友评论
The entitlement data used to verify deep link dual authentication is from the current released version of your app. This data may take 48 hours to update.
请问这是哪里没有设置好?
谢谢
就是 微信 跳转不了
如下,就配了一个通配符。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TeamID.bundleID",
"paths": [ "*" ]
}
]
}
}