iOS 具有二级子域的通用 Link 不深入 link 到本机应用程序,但在一级子域(同一主机)上深度 link 没问题
iOS Universal Link with a second level subdomain doesn't deep-link to native app, but deep-links fine on a first-level subdomain (same host)
我的应用程序中有包含多个应用程序link的功能:条目如下:
applinks:firstlevel.domain.com
applinks:second.level.domain.com
第一级子域上的通用 links 工作正常并打开应用程序。
二级子域上的通用 links 不要打开应用程序(转到 safari)。我现在的怀疑是因为复合(两件式)子域。
apple-app-site-association 文件两者完全相同,并且可以从两者托管和下载。
两个 URLs 都可以从我们的内部网络访问,并且在同一个域和 TLD 上。 SSL 配置正确。没有发生重定向(通过 chrome 开发工具验证)
每个 apple-app-site-association 文件都托管在适当的子域下(而不是在 domain.com 的根目录下)。但是 相同的顶级域用于 URL 1 和 2 中的两个子域。
二级子域可能是问题所在,还是其他网络配置差异更有可能是问题所在?我在网上找不到说明通用 link 是否支持多个子域的信息。
更新:尝试删除 applinks:firstlevel.domain.com 条目,以确保两个子域不会因同一包 ID(和站点关联)而冲突。这并没有什么不同。二级子域仍然不深-link。
关于如何诊断为什么第二个 URL 无法在应用程序中作为深层 link 打开的任何建议?
也不适合使用通配符或将 apple-app-site-association 文件上传到域的根目录,因为那是生产环境,不应该有任何较低的环境设置。
这是我们的 apple-app-site-association 文件:
{
'webcredentials': {
'apps': ['ourteamid.ca.ourdomain.ourname']
},
'applinks': {
'apps': [],
'details': [{
'appID': 'ourteamid.com.ourdomain.ourname1.ourname2',
'paths': ['r/samplepath/*', 'en/r/samplepath/*',
'fr/r/samplepath/*']
}]
}
}
好的,找到解决方案了。这是 apple-app-site-association 文件中的单引号(单引号无效 JSON)。苹果的例子都是用双引号。
在某些时候,有人将其转换为单引号,并上传了文件,但我们没有发现。深层链接在文件中使用双引号可以正常工作,并且与二级域无关。
已更新关联文件:
{
"webcredentials": {
"apps": ["ourteamid.ca.ourdomain.ourname"]
},
"applinks": {
"apps": [],
"details": [{
"appID": "ourteamid.com.ourdomain.ourname1.ourname2",
"paths": ["r/samplepath/*", "en/r/samplepath/*", "fr/r/samplepath/*"]
}]
}
}
我的应用程序中有包含多个应用程序link的功能:条目如下:
applinks:firstlevel.domain.com
applinks:second.level.domain.com
第一级子域上的通用 links 工作正常并打开应用程序。 二级子域上的通用 links 不要打开应用程序(转到 safari)。我现在的怀疑是因为复合(两件式)子域。
apple-app-site-association 文件两者完全相同,并且可以从两者托管和下载。 两个 URLs 都可以从我们的内部网络访问,并且在同一个域和 TLD 上。 SSL 配置正确。没有发生重定向(通过 chrome 开发工具验证)
每个 apple-app-site-association 文件都托管在适当的子域下(而不是在 domain.com 的根目录下)。但是 相同的顶级域用于 URL 1 和 2 中的两个子域。
二级子域可能是问题所在,还是其他网络配置差异更有可能是问题所在?我在网上找不到说明通用 link 是否支持多个子域的信息。
更新:尝试删除 applinks:firstlevel.domain.com 条目,以确保两个子域不会因同一包 ID(和站点关联)而冲突。这并没有什么不同。二级子域仍然不深-link。
关于如何诊断为什么第二个 URL 无法在应用程序中作为深层 link 打开的任何建议?
也不适合使用通配符或将 apple-app-site-association 文件上传到域的根目录,因为那是生产环境,不应该有任何较低的环境设置。
这是我们的 apple-app-site-association 文件:
{
'webcredentials': {
'apps': ['ourteamid.ca.ourdomain.ourname']
},
'applinks': {
'apps': [],
'details': [{
'appID': 'ourteamid.com.ourdomain.ourname1.ourname2',
'paths': ['r/samplepath/*', 'en/r/samplepath/*',
'fr/r/samplepath/*']
}]
}
}
好的,找到解决方案了。这是 apple-app-site-association 文件中的单引号(单引号无效 JSON)。苹果的例子都是用双引号。
在某些时候,有人将其转换为单引号,并上传了文件,但我们没有发现。深层链接在文件中使用双引号可以正常工作,并且与二级域无关。
已更新关联文件:
{
"webcredentials": {
"apps": ["ourteamid.ca.ourdomain.ourname"]
},
"applinks": {
"apps": [],
"details": [{
"appID": "ourteamid.com.ourdomain.ourname1.ourname2",
"paths": ["r/samplepath/*", "en/r/samplepath/*", "fr/r/samplepath/*"]
}]
}
}