11

我们的通用链接现在可以使用很长时间了。今天我添加了一个AASA文件的路径(我们称之为sub2)。该应用程序无法识别该路径,即使在重新安装后也是如此。

当我调试时,我注意到 applinks 服务正在获取文件,但请求没有进入我们的服务器。该服务确实获取了旧的 AASA 文件,因此苹果的 CDN似乎正在缓存该文件。

调试:

  • AASA 文件有效:使用Branch Validator以及Apple 的 appsearch-validation-tool中的新 URL 进行测试

    {
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "redacted",
                    "paths": [
                        "/main/*",
                        "/sub1/*",
                        "/sub2/*",
                        "/pagex-*"
                    ]
                }
            ]
        },
        "activitycontinuation": {
            "apps": [
                "redacted"
            ]
        }
    }
    
    Apple tool: tested https://redacteddomain/sub2/something
    Link to Application: Passed
    Universal true
    ...
    
  • 文件没有缓存在我们这边/Cloudflare:上面的验证器确认了这一点,但要确保我也清除了缓存

  • Iphone 控制台显示正在获取 AASA 文件:

    Beginning data task AASA-64DCD3xx-xxxxx { domain: xx….xx, bytes: 0, route: cdn }

  • 在 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
    

Apple 是否有效地缓存了文件,这是因为我们提供了错误的缓存头吗?如何测试他们的 CDN,这些 url 是公开的还是我可以在日志中找到它们?有没有办法在他们身边强制进行清洗?

更新:发现我们可以使用 URL https://app-site-association.cdn-apple.com/a/v1/yourdomain.com直接查询 CDN

=> 此请求返回旧文件,而原始文件(如 Apple-From 标头中所述)较新!根据 Age 标题,该文件只有几分钟的历史..

UPDATE2 : 问题终于解决了,现在只能猜测CDN缓存刷新了。我已经确保我们的服务器现在发送一个 Cache-Control: no-store 标头,这似乎使 Apple CDN 现在将其缓存一小时(最大年龄:3600),但在那一小时之后它被有效刷新。

请注意,在突然的解决方案之前,CDN 返回了一个年龄只有几分钟且最大年龄为 1800 的文件,所以我仍然很不清楚为什么在服务器文件更新 40 小时后它没有提供新内容.

至少对于以后有类似问题的人来说,CDN url 是一个很好的调试起点:https ://app-site-association.cdn-apple.com/a/v1/yourdomain.com

4

0 回答 0