具有二级子域的iOS通用链接不';t深度链接到本机应用程序,但深度链接在一级子域(同一主机)上可以正常运行
我的应用程序中有包含多个applinks的功能:条目如下:具有二级子域的iOS通用链接不';t深度链接到本机应用程序,但深度链接在一级子域(同一主机)上可以正常运行,ios,ios-universal-links,Ios,Ios Universal Links,我的应用程序中有包含多个applinks的功能:条目如下: applinks:firstlevel.domain.com applinks:second.level.domain.com 第一级子域上的通用链接可以正常工作并打开应用程序。 第二级子域上的通用链接不会打开应用程序(转到safari)。我现在的怀疑是因为复合(2件式)子域 苹果应用程序站点关联文件在两者上完全相同,并且可以从两者托管和下载。 这两个URL都可以从我们的内部网络命中,并且位于同一个域和TLD上。SSL配置正确。没有发
applinks:firstlevel.domain.com
applinks:second.level.domain.com
第一级子域上的通用链接可以正常工作并打开应用程序。
第二级子域上的通用链接不会打开应用程序(转到safari)。我现在的怀疑是因为复合(2件式)子域
苹果应用程序站点关联文件在两者上完全相同,并且可以从两者托管和下载。
这两个URL都可以从我们的内部网络命中,并且位于同一个域和TLD上。SSL配置正确。没有发生重定向(通过chrome开发工具验证)
每个相应的苹果应用程序站点关联文件托管在相应的子域下(不在domain.com的根目录下)。但是,URL 1和URL 2中的两个子域都使用相同的顶级域
第二级子域可能是问题所在,还是其他网络配置差异更可能是问题所在?我在网上找不到说明通用链接是否支持多个子域的信息
更新:已尝试删除applinks:firstlevel.domain.com条目,以确保同一捆绑包ID(和站点关联)的两个子域不冲突。这没有什么区别。第二级子域仍然没有深度链接
关于如何诊断为什么第二个URL不能在应用程序中作为深度链接打开,有什么建议吗
使用通配符或将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应用程序站点关联文件中的单引号(单引号不是有效的JSON)。苹果的例子都使用双引号 在某个时候,有人将其转换为单引号,并上传了该文件,但我们没有捕获它。deeplinks在文件中使用双引号时工作良好,与二级域无关 更新的关联文件:
{
"webcredentials": {
"apps": ["ourteamid.ca.ourdomain.ourname"]
},
"applinks": {
"apps": [],
"details": [{
"appID": "ourteamid.com.ourdomain.ourname1.ourname2",
"paths": ["r/samplepath/*", "en/r/samplepath/*", "fr/r/samplepath/*"]
}]
}
}
同样的问题。你找到答案了吗?没有。我们被封锁了。嗯。。。发现我没有问题:)如果按住动态链接,iOS将询问此链接使用哪个应用程序。看来我第一次选择了Safari,下一次它总是用它打开的。尝试使用新设备进行测试。发现问题。关联文件中的单引号而不是双引号。。。。单引号在JSON中无效。