Ios 普遍深度链接问题

Ios 普遍深度链接问题,ios,swift,deep-linking,Ios,Swift,Deep Linking,我已经注意到了苹果开发者文档中提供的关于universal deeplinking的所有步骤,但它仍然不起作用 我都试过了 1-在我的appId上添加了关联域。(在developer.apple.com上) 2-下载并使用新的资源调配配置文件 3-通过提供有效路径在xcode项目中启用深度链接 4-创建苹果应用程序站点关联文件并添加细节,就像开发者文档中提到的那样 5-将该文件托管到我的服务器 之后,正如开发者文档中提到的,在设备上安装应用程序时,它将下载该文件,这正在发生,我可以在我的服务器上

我已经注意到了苹果开发者文档中提供的关于universal deeplinking的所有步骤,但它仍然不起作用

我都试过了

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

2-下载并使用新的资源调配配置文件

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

4-创建苹果应用程序站点关联文件并添加细节,就像开发者文档中提到的那样

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

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

但它仍然不起作用

除此之外,我注意到下面提到了开发人员文档上的内容。

苹果应用程序站点关联可以创建为纯文本文件,但它应该应用程序/json为MIME类型。这是我现在唯一感到困惑的事情。因为当我在服务器上检查当前文件的MIME类型时,什么都不会出现

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

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


提前谢谢。

我的直觉是,还有其他因素在起作用
application/json
仅仅意味着苹果将把这个文件解释为一个json对象。以下是我的一些建议:

1) 确保您的AASA文件格式正确,并且
appID
与项目的app ID和bundle ID匹配,如我的示例所示。我将从这个AASA格式开始,然后从那里开始

{
    "applinks":
       {
           "apps":[],
           "details":[
                       {
                          "appID":"CXXXXXXXXD.com.deep.linked.Deep-Linked-Dogs",
                          "paths":["NOT /e/*","*","/"]
                        }
                     ]
       }
}
2) 确保项目中包含您的权利文件。这是下载AASA所必需的。确保您的域是正确的

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

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

5) 用于深度链接。它将为您节省大量调试时间。他们为您处理AASA文件,并提供延迟深度链接解决方案和其他边缘情况

如果是,那么如何设置文件的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和from中。这个链接有一个我认为对你有用的分步指南