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

背景:

  1. 为多个客户构建一个vanilla应用程序。 具有不同bundle 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"}]} 

这是苹果的限制吗?

这个有可能。 对于同一域中的多个应用,Apple在Universal Links上没有任何限制。

您的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在许多情况下不起作用,因此这不是一个完整的深层连接解决方​​案(尽管Apple公司的一厢情愿相反)。 如果您想要一种更简单的深层链接方法,可以轻松处理这样的多应用程序需求,请查看Branch.io (完全披露:我在分支团队中)。