通用深层链接问题

时间:2017-12-21 13:13:41

标签: ios swift deep-linking

我已经处理了Apple开发人员文档中有关通用深层链接的所有步骤,但它仍无法正常工作。

我所做的一切。

1-在我的appId上添加了相关域名(在developer.apple.com上)

2-下载新的配置文件并使用它们。

3-通过提供有效路径在xcode项目中启用深层链接。

4-创建apple-app-site-association文件并添加详细信息,就像在开发人员文档中提到的那样。

5-将该文件托管到我的服务器

之后如开发人员文档中所述,在设备上安装应用程序时,它将下载该文件,正在发生,我可以在我的服务器上看到日志(该文件的200状态代码)

它仍然无效。

除了我在开发人员文档中注意到的一切之外,还提到了以下内容。 enter image description here

可以将apple-app-site-association创建为纯文本文件,但它应该 application / json作为MIME类型。这是我现在唯一困惑的事情。因为当我在服务器上检查我当前文件的MIME类型时,什么都没有。

这是问题吗?如果是,那么如何设置文件的MIME类型?

如果没有,那么请告诉我我还缺少什么。

先谢谢。

2 个答案:

答案 0 :(得分:1)

  

如果是,那我该如何设置文件的MIME类型?

您可以在服务器的响应中进行设置。

var aasa = fs.readFileSync(__dirname + '/static/apple-app-site-association');
app.get('/apple-app-site-association', function(req, res, next) {
     res.set('Content-Type', 'application/json');
     res.status(200).send(aasa);
});

此示例位于Express.js中,来自Branch。该链接有一个逐步指南,我认为这对您有用。

答案 1 :(得分:0)

我的直觉是还有别的东西在起作用。 application/json只是意味着Apple会将此文件解释为JSON对象。以下是我的一些建议:

1)确保您的AASA文件格式正确,并且appID与项目的应用程序ID匹配,后跟包ID,如我的示例。我只是从这个AASA格式开始,然后从那里开始。

{
    "applinks":
       {
           "apps":[],
           "details":[
                       {
                          "appID":"CXXXXXXXXD.com.deep.linked.Deep-Linked-Dogs",
                          "paths":["NOT /e/*","*","/"]
                        }
                     ]
       }
}

2)确保您的权利文件包含在项目中。这是下载AASA所必需的。确保您的域名正确无误。

entitlements file

3)检查您的手机是否正在运行iOS 11.2。此版本的iOS有时无法实际下载AASA文件。要解决此问题,您应删除该应用,重新启动手机,然后重新安装。我建议使用Charles Proxy检查手机是否实际下载了AASA文件。

4)检查您的应用中是否已禁用通用链接(可能不是您的问题,但请检查)。您可以通过将链接复制到Notes应用程序,然后长按它以提示操作表来完成此操作。如果您看到“在应用名称中打开”,则可以选择该项以打开该应用的通用链接。如果您没有看到,则未正确下载或配置AASA文件。

5)使用Branch's iOS SDK进行深层链接。它将为您节省大量的调试时间。他们为您处理AASA文件,并提供延迟深度链接解决方案和其他边缘情况。