1、开启Associated Domains服务
登录苹果开发者网站,在Certificates, Identifiers & Profiles页面左侧选择Identifiers,右侧选择对应的App ID,点击进入配置详情页,开启Associated Domains服务;
2、更新Profile文件(配置文件)
在Certificates, Identifiers & Profiles页面左侧选择Profiles,右侧选择对应的配置文件,点击进入,点击Edit进入修改页,直接点击Save,保存后点击Download下载并打开;
3、Xcode配置
Xcode打开项目,进入工程配置,添加Associated Domains项,步骤如图:
4、添加完成后配置applinks域名
注意:
a、必须是https链接
b、必须外网能访问(可以理解为不用代理直接用流量能访问)
c、将https://替换为applinks:
d、不用/结尾
e、可以给Debug、Release分别配置。
配好后格式如图:(applinks:为前缀,test.uubx.com为域名)
5、创建apple-app-site-association文件
(1)文件名必须为:apple-app-site-association,直接复制
(2)文件不能跟后缀,是纯文本
(3)文件必须放在服务器根目录或者.well-known目录下,这是苹果规定的,具体请教后端的同事
创建步骤:
a、打开系统自带的文本编辑器,进入偏好设置,如图:
b、进入打开和存储,关闭给纯文本文件添加.txt扩展名选项,如图:
c、选择格式,切换为制作纯文本,如图:
d、编辑内容,先复制以下内容到编辑器,并看注释
{
"applinks": {
"apps": [],
"details": [
{
"appID": "AAAAA.BBBBB",
"paths": ["/path1/*"]
},
{
"appID": "CCCCC.DDDDD",
"paths": ["/path1/*","/path2/*","/path3/*"]
},
{
"appID": "EEEEE.FFFFF",
"paths": ["/*"]
}
]
}
}
注释:
(1)格式是固定的
(2)apps为空就行,不需要更改
(3)支持多个App共用一个apple-app-site-association文件(即一个域名有多个App在使用)
(4)多个App共用,只需要在上述配置details中添加
(5)details为一个list,切记注意格式
(6)details下一个字典为一个App,多个App添加多个字典就行,注意,号隔开
(7)details下字典格式固定,注意别更改
(8)appID格式为:Team ID+.+Bundle Identifier,即上述配置中,AAAAA、CCCCC、EEEEE为Team ID,BBBBB、DDDDD、FFFFF为Bundle Identifier,注意Team ID与Bundle Identifier中间用”.“链接
(9)Team ID查找,登录开发者账号,进入账户,进入会员资格详细信息,找到团队 ID,即为Team ID,如图
(10)paths是一个list,表示路径,一个App可以配置多个path,也可以直接使用/*
(11)/* 表示通用链接,即只要域名正确,可以直接命中,一般不建议直接使用/* ,如配置为/path1/* ,则必须域名+/path1/才能命中
(12)path中的路径是自定义的,但一定要以/* 结尾,切记,切记,切记
e、编辑好内容后,保存文件,切记文件名字必须为apple-app-site-association,如图:
6、上传文件到服务器
将刚才的文件发送给后端同事,让帮忙上传至服务器根目录或者.well-known目录下,切记,只能这两个目录
7、验证
7.1 验证服务器文件上传是否成功
在服务器上传文件后,通过浏览器是可以正常访问到的。如果文件放在根目录下,链接为:https://test.uubx.com/apple-app-site-association,如果文件放在.well-known目录下,则链接为:
https://test.uubx.com/.well-known/apple-app-site-association(注:https://test.uubx.com/需要替换为你自己的域名)。浏览器打开后,会看到我们刚才配置的apple-app-site-association文件内容,如果不能,则需要查看文件目录是否正确,网络是否支持外网,服务器是否拦截。
7.2 验证Universal Link链接是否配置正确
方法一:打开备忘录,输入https://test.uubx.com/path1/(域名替换为你配置的域名,path1路径替换为你自己配置的路径,如果直接配置的/* 则直接输入域名即可),编辑完成后,长按链接,如果出现在”XXX”中打开,则表示配置成功。如图:
方法二:打开safri浏览器,输入https://test.uubx.com/path1/(域名替换为你配置的域名,path1路径替换为你自己配置的路径,如果直接配置的/* 则直接输入域名即可),编辑完成后,点击前往,加载完成后(会有一个报错页面),轻轻下拉网页,如果出现App的图标、名称和打开按钮,则表示配置成功。如图:
Tips:
a、 apple-app-site-association文件会在第一次安装App的时候自动下载
b、 如果手机上已经安装过App,并且已经下载过apple-app-site-association文件,这时服务器更改了apple-app-site-association文件,手机上的apple-app-site-association文件是不会自动更新的。
c、 偶现过一种情况,手机网络卡,在打开App后,猜测系统自动下载apple-app-site-association文件失败,导致手机上没有apple-app-site-association文件,这时系统不会在自动下载apple-app-site-association文件,不知道描述是否正确,偶现过一两次。
d、 如果出现b、c两种情况,尝试解决办法,1、完全杀死App,然后重启手机,手机开机后,不要先打开App,等待网络稳定后,在打开App; 2、直接卸载当前App,重新下载。在网络较稳定的情况下打开App。
e、 感觉最坑的一个是apple-app-site-association应该不是实时的,会有一定延迟,如果整体流程按照要求配置完成,没有出错的情况下,出现无法打开的情况,可以尝试更换其他手机测试,或者稍微等待。