我已经处理了苹果开发者文档中关于通用深度链接的所有步骤,但它仍然无法正常工作。
我所尝试的一切。
1-在我的appId上添加了相关域名(在developer.apple.com上)
2-下载新的配置文件并使用它们。
3-通过提供有效路径在xcode项目中启用深层链接。
4-创建apple-app-site-association文件并添加详细信息,就像在开发人员文档中提到的那样。
5-将该文件托管到我的服务器
之后如开发人员文档中所述,在设备上安装应用程序时,它将下载该文件,正在发生,我可以在我的服务器上看到日志(该文件的200个状态代码)
它仍然无法正常工作。
apple-app-site-association可以创建为纯文本文件,但应该将application / json作为MIME类型。这是我现在唯一困惑的事情。因为当我在服务器上检查我当前文件的MIME类型时,什么都没有。
这是问题吗?如果是,那么如何设置文件的MIME类型?
如果没有,请告诉我我还缺少什么。
提前致谢。
如果是,那么如何设置文件的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中。该链接有一个逐步指南,我认为这对您有用。
我的直觉是还有别的东西在起作用。 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所必需的。确保您的域名正确无误。
3)检查您的手机是否运行iOS 11.2。此版本的iOS有时无法实际下载AASA文件。要解决此问题,您应删除该应用,重新启动手机,然后重新安装。我建议使用Charles Proxy检查手机是否实际下载了AASA文件。
4)检查您的应用中是否已禁用通用链接(可能不是您的问题,但检查)。您可以通过将链接复制到Notes应用程序,然后长按它以提示操作表来完成此操作。如果您看到“在应用名称中打开”,则可以选择该项以打开该应用的通用链接。如果您没有看到,则未正确下载或配置AASA文件。
5)使用Branch's iOS SDK进行深层链接。它将为您节省大量的调试时间。他们为您处理AASA文件,并提供延迟深度链接解决方案和其他边缘情况。