我们有通用链接工作了很长一段时间了。今天我添加了一个路径到AASA文件(让我们称之为sub 2)。该路径不被应用程序识别,即使在重新安装后。
当我调试的时候,我注意到这个文件是由applinks服务获取的,但是请求并没有进入我们的服务器。这个服务确实获取了旧的AASA文件,所以看起来苹果的CDN正在缓存这个文件。
:
- AASA文件有效:使用Branch Validator以及Apple's appsearch-validation-tool中的新URL进行了测试
{
"applinks": {
"apps": [],
"details": [
{
"appID": "redacted",
"paths": [
"/main/*",
"/sub1/*",
"/sub2/*",
"/pagex-*"
]
}
]
},
"activitycontinuation": {
"apps": [
"redacted"
]
}
}
个字符
- 文件没有缓存在我们这边/Cloudflare:上面的验证器确认了这一点,但为了确保我也清除了该高速缓存
- iPhone控制台显示正在获取AASA文件:
第一个月
- 在iPhone上创建了一个sysdiagnose文件,它显示AASA文件是在这个时间戳获取的,但内容是旧的内容:
Service: applinks
App ID: (redacted)
App Version: 2.3.4
App PI: <LSPersistentIdentifier 0x101579cc0> { v = 0, t = 0x8, u = 0x11c0, db = 49C449xx-xxxx, {length = 8, bytes = 0xc011000000000000} }
Domain: (redacted)
Patterns: {"/":"/main/*"}, {"/":"/sub1/*"}, {"/":"/pagex*"}
User Approval: unspecified
Site/Fmwk Approval: approved
Flags:
Last Checked: 2021-07-13 18:45:00 +0000
Next Check: 2021-07-18 18:36:18 +0000
型
苹果是否有效地缓存了文件,这是因为我们提供了错误的缓存头吗?如何测试他们的CDN,这些URL是公开的还是我可以在日志中找到它们?有没有办法在他们那边强制清除?
UPDATE:发现可以直接查询CDN,地址为https://app-site-association.cdn-apple.com/a/v1/yourdomain.com
=>此请求返回OLD文件,而原始文件(如Apple-From头中所述)是较新的!根据Age头,该文件只有几分钟的时间。
- 酒店:这个问题终于解决了,我只能猜测CDN缓存刷新了。我已经确保我们的服务器现在发送了一个Cache-Control:no-store头,似乎这使得苹果CDN缓存它一个小时(最大年龄:3600),但在这一小时后,它被有效地刷新。
请注意,在突然的解决方案之前,CDN返回了一个文件,年龄只有几分钟,最大年龄为1800,所以我仍然不清楚为什么它在服务器文件更新后40小时没有提供新内容。
至少对于将来遇到类似问题的人来说,CDN url是一个非常好的调试起点:https://app-site-association.cdn-apple.com/a/v1/yourdomain.com
4条答案
按热度按时间rqqzpn5f1#
在这种情况下,您可以在为应用定义关联域名授权时使用
developer
备用模式。开发人员备用模式会绕过CDN缓存,直接进入您的服务器进行应用关联。为此,将向关联的域权利添加一个查询字符串:
<service>:<fully qualified domain>?mode=developer
个这是通过XCode访问的“关联域”功能。更多信息请参见文档:Adding capabilities to your app
v440hwme2#
不幸的是,你不能以我发现的任何方式清除苹果CDN的该高速缓存,但你至少可以确保它在更新时是正确的。
通过Apple服务器重新配置最新版本
这不会清除该高速缓存,但可以让您确认该高速缓存更新时是否正确。
1.转到:https://app-site-association.cdn-apple.com/a/v1/yourdomain.com
1.加一个?1或?添加任何查询字符串都会使cdn重新请求资源,这样你就可以看到当主URL更新时它是正确的。
同样,这并没有清除苹果设备实际使用的url的该高速缓存,但它确实允许你确认它将是正确的。
测试的开发/模式标志
正如其他人提到的,您可以在开发模式下添加开发人员或托管选项:
Apple文档-关联域-启用备用模式
例如
字符串
cgh8pdjw3#
您可以使用以下命令在苹果端检查CDN版本的生命周期:
https://app-site-association.cdn-apple.com/a/v1/<yourdomain.com>
然后打开inspector以检查响应标题:
该高速缓存生存期等于max-age - age(以秒为单位)。
所以你必须等待这个时候,并重新检查与url https://app-site-association.cdn-apple.com/a/v1/<yourdomain.com>
sbtkgmzw4#
您可以使用调试模式从您的服务器而不是从Apple CDN获取AASA文件。
第一个月
更多信息:https://github.com/NikKovIos/AASA-Universal-Links-Information/tree/main