Apple App Site Association文件特定路径覆盖失效问题排查
Apple App Site Association(AASA)深度链接配置问题排查与修复
问题原因
Apple的AASA组件规则是按数组从上到下顺序匹配,第一个命中的规则生效。你的配置逻辑本身是正确的(/bbs/thread/*优先于/bbs/*的排除规则),但未生效可能由以下原因导致:
- 缓存机制:Apple会缓存AASA文件(最长24小时),旧配置可能未更新
- 部署问题:AASA文件未放在正确位置、Content-Type不正确或HTTPS配置不符合要求
- 规则覆盖不全:仅配置了
/bbs/thread/*,未覆盖不带后缀的/bbs/thread路径 - App ID不匹配:配置中的App ID格式(TeamID.BundleID)与实际App的签名信息不一致
修复方案
1. 优化AASA规则配置
调整规则,明确include属性,并覆盖完整的目标路径:
{ "applinks": { "apps": [], "details": [ { "appIDs": [ "XXXXXXX.io.deweb.messageboard.stg" ], "components": [ { "/": "/_/*", "exclude": true }, // 覆盖不带后缀的路径 { "/": "/bbs/thread", "include": true }, // 覆盖带子路径的情况 { "/": "/bbs/thread/*", "include": true }, { "/": "/bbs/*", "exclude": true }, { "/": "/*", "include": true } ] } ] } }
2. 验证部署正确性
- 将AASA文件放在网站根目录或
.well-known子目录下(路径为https://yourdomain.com/.well-known/apple-app-site-association) - 确保访问该URL时返回
application/json的Content-Type - 确认网站使用合法的HTTPS证书,无证书错误
3. 清除缓存测试
- 卸载已安装的App,重新安装后测试深度链接
- 使用Xcode的
Debug > Deep Link > Open URL功能直接测试目标链接,绕过系统缓存
4. 核对App ID信息
确认配置中的App ID格式为TeamID.BundleID,与App的Xcode签名配置(Team ID和Bundle ID)完全一致
内容的提问来源于stack exchange,提问作者Or Bachar
相关产品推荐
相关产品推荐

