iOS 通用应用链接可以支持使用同一个域的多个应用吗?

jyl*_*ang 3 ios applinks deeplink

背景:

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

    com.company.client1

    com.company.client2

  2. 希望使用相同的通用应用程序链接支持所有客户端构建,即:

    company.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"}]}
Run Code Online (Sandbox Code Playgroud)

这是苹果的限制吗?

Ale*_*uer 6

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

看来你apple-app-site-association的格式不正确。你需要它看起来像这样:

{
  "applinks": {
    "apps": [ ],
    "details": [
      {
        "appID": "XXXXXXXXXX.com.company.client1",
        "paths": [
          "/app/*"
        ]
      },
      {
        "appID": "XXXXXXXXXX.com.company.client2",
        "paths": [
          "/app/*"
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

注意appIDpaths键的顺序,以及最后的结束}

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

另一个重要的注意事项是通用链接在许多情况下不起作用,因此这不是一个完整的深度链接解决方案(尽管 Apple 一厢情愿地声称相反)。如果您想要一种更简单的深度链接方法,可以轻松处理这样的多应用程序需求,请查看Branch.io(完全披露:我在 Branch 团队)。