我已经处理了苹果开发人员文档中提供的关于通用深加工的所有步骤,但它仍然不起作用。
我所做的一切。
1-在我的appId上添加了关联域。(在developer.apple.com上)
2-下载新的配置文件并使用它们。
通过提供有效路径在xcode项目中启用deeplinks。
4-创建苹果应用站点关联文件,并添加详细信息,就像开发者文档中提到的那样。
5-将该文件托管到我的服务器上
在此之后,正如开发人员文档中提到的,在设备上安装应用程序时,它将下载正在发生的文件,我可以看到服务器上的日志(该文件的状态代码为200)。
但它仍然不起作用。
除了所有的东西之外,我注意到下面提到了开发人员文档。
苹果应用站点关联可以创建为纯文本文件,但它应该将应用程序/json作为MIME类型的创建。这是我现在唯一感到困惑的事情。因为当我检查服务器上当前文件的MIME类型时,什么都不会出现。
这是问题吗?如果是,那么如何设置文件的MIME类型?
如果没有,请告诉我我还缺少什么。
提前谢谢。
发布于 2017-12-21 17:58:29
我的直觉是,还有别的事情在起作用。application/json
只是意味着苹果将把这个文件解释为一个JSON对象。以下是我的一些建议:
1)确保AASA文件的格式是正确的,并且appID
与项目的应用程序ID匹配,后面跟着捆绑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来检查手机是否真的在下载AASA文件。
4)检查是否禁用了应用程序中的通用链接(可能不是您的问题,而是检查)。您可以将链接复制到Notes应用程序中,然后长时间地按它以提示操作单。如果您看到“在应用程序名称中打开”,那么您可以选择打开该应用程序的通用链接。如果您没有看到这一点,那么AASA文件就没有被正确下载或配置。
( 5)使用分支的iOS SDK进行深度链接。它将为您节省许多小时的调试。它们为您处理AASA文件,以及提供延迟的深链接解决方案和其他边缘情况。
发布于 2017-12-21 18:08:21
如果是,那么如何设置文件的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中和来自分支中。该链接有一个逐步的指南,我认为这将是有用的。
https://stackoverflow.com/questions/47925793
复制相似问题