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/*"]
        }]
    }
}