支持不同团队开发的不同应用程序中的相同域

时间:2017-07-23 19:11:46

标签: ios branch.io ios-universal-links

我看过this post,但它没有解决我们当前的问题。我们希望与一家公司合作开展一项风险投资,问题是我们的苹果网站协会文件可以保持彼此的团队和应用程序ID,但仍然会响应同一个域名吗?即我们的服务器将保留:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "1234ABCDE.com.ourdomain.ourApp",
                "paths": ["*"]
            },
            {
                "appID": "D3KQX62K1A.com.theirdomain.theirApp",
                "paths": ["*"]
            }

        ]
    }
}

这意味着我们的应用可以在我们应用的关联域中拥有applinks:ourdomain.com。他们的服务器将保持:

{
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "1234ABCDE.com.ourdomain.ourApp",
                    "paths": ["*"]
                },
            {
                "appID": "D3KQX62K1A.com.theirdomain.theirApp",
                "paths": ["*"]
            }

            ]
        }
    }

然后在他们的关联域中,他们也可以拥有:applinks:ourdomain.com。因此,如果用户按下ourdomain.com网址并安装了他们的应用程序,它会打开他们的应用程序吗?我正在查看当我们的某个网址被按下并且用户安装了他们的应用时,我们是否可以打开他们的应用。如果用户同时安装了我们的应用程序,会在场景中发生什么?

1 个答案:

答案 0 :(得分:0)

通用答案

这肯定会奏效 - 这正是Universal Links的功能。您正在完成以下两个必要部分:

  1. 使用apple-app-site-association文件验证域的“控制权”。
  2. 使用应用内的applinks:权利请求验证域。
  3. 只要两件作品都存在正式拥有该域名就无所谓。

    就两个应用程序同时安装时会发生什么情况,Apple当然是正确的:这是未定义。这意味着Apple特别选择不支持这种情况,所以什么都不会保证。为避免这种情况,您不应将"paths": ["*"]用于这两个应用;相反,请执行"paths": ["/ourApp/*"]"paths": ["/theirApp/*"]之类的操作,以根据路径区分链接。

    特定分支信息

    由于您提到了Branch.io(完全披露:我在分支机构团队中),我还将介绍这通常对我们的服务有何影响。

    我们会为每个应用自动配置和托管apple-app-site-association文件,因此您无需担心技术细节。当我们有两个有兴趣以这种方式相互合作的应用程序时,过程很简单:

    1. 想要打开他们的应用。
    2. 会获得他们的应用分行密钥。
    3. 使用他们应用的分支键来生成链接,通常是appending query parameters
    4. 这些链接会自动打开他们的应用,就像他们生成链接一样。