iOS 通用应用程序 link 可以支持使用同一域的多个应用程序吗?

Can iOS universal app link support multiple apps using the same domain?

背景:

  1. 为多个客户端构建普通应用程序。 具有不同包 ID 的相同代码库,即:

    com.company.client1

    com.company.client2

  2. 想要使用相同的通用应用程序支持所有客户端构建 link,即:

    公司。com/app/path

  3. 试图将此添加到 'apple-app-site-association' 文件

'apple-app-site-association' 文件:

{"applinks": {"apps": [],"details": [
{"paths": ["/app/*"],"appID": "XXXXXXXXXX.com.company.client1"},
{"paths": ["/app/*"],"appID": "XXXXXXXXXX.com.company.client2"}]}

这是苹果的限制吗?

这是可能的。 Apple 对同一域中多个应用程序的通用链接没有限制。

您的 apple-app-site-association 格式似乎有误。您需要它看起来像这样:

{
  "applinks": {
    "apps": [ ],
    "details": [
      {
        "appID": "XXXXXXXXXX.com.company.client1",
        "paths": [
          "/app/*"
        ]
      },
      {
        "appID": "XXXXXXXXXX.com.company.client2",
        "paths": [
          "/app/*"
        ]
      }
    ]
  }
}

注意appIDpaths键的顺序,最后关闭}.

如果安装了多个应用程序,您也会 运行 遇到此设置的问题,因为它们都在注册相同的路径。您可能需要考虑为每个 ID 添加唯一 ID,例如 /app/client1/*.

另一个重要说明是 Universal Links don't work in many situations so this is not a complete deep linking solution (despite Apple's wishful claims to the contrary). If you want a simpler deep linking approach that will easily handle a multi-app requirement like this, take a look at Branch.io(完全披露:我在 Branch 团队)。