【问题标题】:Universal links of two app open ever the same app with Branch.io两个应用程序的通用链接使用 Branch.io 打开同一个应用程序
【发布时间】:2016-05-22 11:13:07
【问题描述】:

我所有的应用程序都使用相同的自定义域,即 links.ci--e.es。

我的应用是:

  • Co-ba -> Bundle id --> com.cit--e.co-ba
  • Ca-as -> Bundle id --> com.cit--e.ca-as
  • Gu-la -> Bundle id --> com.cit--e.gu-la

在每个应用中:

  • 我已经在我的设备上安装了我的应用程序。
  • 我已正确设置所有应用程序。实时和测试仪表板。也在 XCode 中。
  • 我考虑了 facebook 的代码。然后我将代码添加到我的应用程序中。
  • 在验证器通用链接、个性化域、捆绑 ID 和返回前缀我这个 json。一切都是正确的。

Validator Universal Links Validator Universal Links

{
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "ZXXXXXXXX4.com.ci--e.co-ba",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.gu-la",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.ca-as",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.test",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.co-ba",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.gu-la",
            "paths": [
                "*",
                "/"
            ]
        },
        {
            "appID": "ZXXXXXXXX4.com.ci--e.test",
            "paths": [
                "*",
                "/"
            ]
        }
    ]
}

}

我为我的每个应用程序制作营销链接。示例:

应用名称 Co-ba - http://link.ci--e.es/TzUm/CL1D25b4tt

应用名称 Ca-as - http://link.ci--e.es/LKVl/wkb27JqVtt

应用名称 Gu-la - http://link.ci--e.es/lySm/ygacY4N2tt

当我的设备上安装了一个应用程序时,这些链接可以正常工作。安装有多个应用程序时,链接无法正常工作。

我总是打开同一个应用程序的链接,即使它们属于另一个应用程序。示例:

如果您安装了 Co-ba 和 Gu-la。我在我的设备 Co-ba 上打开一个链接,然后 Co-ba 应用程序打开。我在我的设备 Gu-la 上打开一个链接,然后应用程序打开 Co-ba。这是个错误。你的错在哪里?

感谢您的回复。

【问题讨论】:

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


    【解决方案1】:

    来自 Branch.io 的 Alex 在这里:

    短版

    Branch 目前不支持同一域上的多个应用程序,因此会出现一些不可避免的意外行为。我建议为每个应用使用不同的子域。

    更长的解释

    发生这种情况的原因是所有三个应用程序都注册为打开相同的通用链接 URL。 co-ba 只是 apple-app-site-association 文件中的第一个,所以它是安装多个应用时默认打开的那个。

    如果您查看每个应用程序的分支链接链接,您会发现每个应用程序都有一个四个字符的唯一 ID。

    • Co-ba:TzUm
    • Ca-as:LKVl
    • 古拉:lySm

    Branch 使用这四个字符的 ID 来分隔每个应用的链接,以便只打开正确的应用。您将需要托管自己的 apple-app-site-association 文件并将其更新为如下所示(同时删除重复的条目):

    {
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "ZXXXXXXXX4.com.ci--e.co-ba",
                "paths": [
                  "/TzUm/*",
                  "/a/Branch-key-for-co-ba/*"
                ]
            },
            {
                "appID": "ZXXXXXXXX4.com.ci--e.gu-la",
                "paths": [
                  "/lySm/*"
                  "/a/Branch-key-for-gu-la/*"
                ]
            },
            {
                "appID": "ZXXXXXXXX4.com.ci--e.ca-as",
                "paths": [
                  "/LKVl/*"
                  "/a/Branch-key-for-ca-as/*"
                ]
            }
        ]
    }
    

    使用此解决方案,您必须记住,在 Branch 仪表板上创建的营销链接(以及您使用自定义别名创建的任何其他链接)将不起作用,因为它们没有四个字符的标识符。

    【讨论】:

    • 最后为每个应用选择一个子域。 App name Co-ba - htttp: //co-ba.link.ci--e.es/TzUm/CL1D25b4tt App name Ca-as - htttp: //ca-as.link.ci--e.es/LKVl /wkb27JqVtt 应用名称 Gu-la - htttp: //gu-la.link.ci--e.es/lySm/ygacY4N2tt
    • @Fran 太棒了!我认为这绝对是最简单的方法,应该给您带来最少的并发症
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多