当应用安装时,我看到了https://example.com/.well-known/apple-app-site-association的请求,该请求获得了200响应,并带有正确的json响应。
奇怪的事情1:然后应用继续尝试请求/ apple-app-site-association失败,因为根目录中没有该文件。如果已经有.well知道的文件,为什么它会回退到这个文件?
应用程序完成打开后,我可以进入Notes或其他内容并点击深层链接,例如https://example.com/some/path,这将在野生动物园中打开。
奇怪的事情2:在网站开放之前,有几个请求.well-known / apple-app-site-association和/ apple-app-site-association。我很确定.well已知的请求是第一位的,而且.well已知的版本还有一个版本而不是根本版本。
之后,我现在可以回到Notes并点击深层链接,现在它将正确打开应用程序。一切都是对的。
任何想法可能是错误的第一个.well已知的响应导致它们无法工作并生成回退请求?有这个问题或有任何想法的其他人吗?
以下是Charles编辑的截图(应用安装在11:24:18完成),以及来自.well-known / apple-app-site-association的编辑回复。
HTTP/1.1 200 OK
Content-Type: application/json
Last-Modified: Tue, 06 Jun 2017 00:50:40 GMT
Accept-Ranges: bytes
ETag: "[redacted]"
Content-Length: 156
Connection: Keep-alive
{
"applinks": {
"apps": [],
"details": [
{
"appID": "[redacted].com.[redacted]",
"paths": [ "*" ]
}
]
}
}
答案 0 :(得分:3)
这是您遇到的问题,因为您正在代理连接(使用Charles Proxy - 但任何代理都会导致问题)。 Apple检测到连接已被代理,并且不信任下载的文件。
在实际情况中,您实际上不会遇到此问题,因为您的用户不会使用Charles Proxy。
答案 1 :(得分:0)
iOS每次都会抓取两个位置。如果两个文件不匹配,我不确定是否存在已定义的首选顺序,但我知道在这种情况下你会遇到奇怪的行为。尽量避免它。
看起来确实存在某种配置问题,导致文件在第一次尝试时无法正确验证。由于你已经编辑了所有可能让我调查的细节,遗憾的是我在那里得不到多少帮助。
初始失败后重新抓取链接点击是新的 - 我之前没有见过这个。它必须是最近添加的,以帮助捕获否则会导致Universal Link行为中断的情况(安装期间的网络拥塞等)。如果您能够调试初始刮擦错误,则应该停止发生。
答案 2 :(得分:0)
Why would it fall-back to this file if it already has the .well-known one?
Apple文档建议在失败时尝试使用根文件夹。
Handoff first searches for the file in the .well-known subdirectory (for example, https://example.com/.well-known/apple-app-site-association), falling back to the top-level domain if you don’t use the .well-known subdirectory.