apple-app-site-association 应用程序顺序不受尊重

Vla*_*rov 9 ios ios-universal-links ios15

我有几个与同一域关联的应用程序。它们以特定顺序列在 apple-app-site-association 文件中,以确保每个通用链接都由设备上安装的最合适的应用程序打开。这在 iOS 14 及更早版本的设备上运行良好。在 iOS 15 上,不再遵守该顺序,链接不是由第一个应用程序打开,而是由最后一个与链接路径匹配的应用程序打开。

这是我的 apple-app-site-association 文件:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "AAAAA.com.mydomain.BurritoApp",
                "paths": [ "/burritos/*" ]
            },
            {
                "appID": "AAAAA.com.mydomain.FoodApp",
                "paths": [ "/burritos/*", "/tacos/*", "/deli/*" ]
            },
            {
                "appID": "AAAAA.com.mydomain.OrderAnythingApp",
                "paths": [ "/*" ]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

在 iOS 14 上,BurritoApp 按预期处理墨西哥卷饼链接。

当我在装有 iOS 15 的设备上安装所有 3 个应用程序并点击墨西哥卷饼链接时,OrderAnythingApp 会处理该链接。如果我从上面的关联文件中删除 OrderAnythingApp 部分,那么 FoodApp 就会开始处理墨西哥卷饼链接。

我搜索了文档,观看了 2020 年和 2019 年与通用链接相关的 WWDC 视频,我尝试使用带有组件而不是路径的新关联文件格式。我仍然不知道是什么原因导致此问题以及如何解决它。

Vla*_*rov 5

看来 iOS 15 的链接顺序应该相反。

我找不到有关它的官方文档。经过大量的试验和错误,我发现这个关联文件在 iOS 15 上可以正常工作:

{
    "applinks": {
        "details": [
            {
                "appID": "AAAAA.com.mydomain.OrderAnythingApp",
                "components": [
                    {
                        "/": "/*"
                    }
                ]
            },
            {
                "appID": "AAAAA.com.mydomain.FoodApp",
                "components": [
                    {
                        "/": "/burritos/*"
                    },
                    {
                        "/": "/tacos/*"
                    },
                    {
                        "/": "/deli/*"
                    }
                ]
            },
            {
                "appID": "AAAAA.com.mydomain.BurritoApp",
                "components": [
                    {
                        "/": "/burritos/*"
                    }
                ]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在 iOS 14 上不起作用。如果有人知道如何针对 iOS 14 和 iOS 15 修复它,请告诉我。