关联域深度校验

iOS 通用链接与 Android 应用链接依赖通过 HTTPS 提供的 `apple-app-site-association` 与 Digital Asset Links JSON,且需满足内容类型、重定向与缓存等细节。将源站响应与苹果 CDN 视图对照,可在用户回落到浏览器前定位策略不一致。

使用方法

  1. 填写你在 Associated Domains 或 Android intent 中声明的全部域名,包含预发与区域化主机。
  2. 并排检查 HTTP 状态、JSON 结构、应用标识、路径通配符、团队 ID 与签名指纹等,并与各平台官方指引对照。
  3. 修正响应头与内容后重新发布,待缓存扩散后在真机上点击验证;当应用包名或签名指纹轮换时同步更新权利声明。

常见问题

为什么 iOS 仍用 Safari 打开链接?
常见原因包括 `/.well-known/` 或根路径缺少/无效的 AASA、错误的 `Content-Type`、重定向链路问题、体积过大,或应用标识与权利声明不一致。可用苹果 CDN 快照对比源站定位陈旧缓存。
Android 与 Apple 配置文件要列相同路径吗?
两平台模式不同:iOS 需要 `applinks` 下的应用 ID 与路径规则;Android 需要包名加经校验的签名证书。按各自路由矩阵协同,但字段结构须分别遵循平台格式。
AASA/CDN 缓存会保留多久?
苹果侧缓存较激进,修复后仍可能出现延迟。记录响应头与版本,更新权利声明并定期复测,勿假设立即失效。

移动关联域深度诊断分析

极速并发审计 iOS Universal Links 与 Android App Links 配置文件,穿透苹果 CDN 缓存层进行实时差异同步比对。

~/tools/associated-domains $ ./diagnose
terminal_diagnostics.sh
// Enter domain above and click start to run diagnostics...
// Diagnostics report is compiled after analysis runs...
// Diagnostics report is compiled after analysis runs...
// Diagnostics report is compiled after analysis runs...
// Source JSON code is shown after diagnostic finishes...

📖 Associated Domains 关联域技术 Wiki 与运维指南

// 为开发与运维人员打造的 Universal Links 与 App Links 一站式运维宝典。

🍎 iOS 通用链接 (Universal Links) 工作原理

通用链接是苹果提供的深度链接协议。它允许用户在点击网页链接时,不通过 Safari 浏览器中转,而是直接静默拦截并唤起本地已安装的 App。

核心工作机制:

  1. 配置声明: 开发者在 Xcode 项目中开启 Associated Domains,并声明格式如 applinks:yourdomain.com 的关联域。
  2. 系统安装静默拉取: 用户安装 App 时,iOS 操作系统会自动静默连通苹果官方 CDN (app-site-association.cdn-apple.com) 抓取您源站上的 apple-app-site-association 文件。
  3. 设备端安全注册: 苹果系统解析该文件。如若文件合法,且文件中声明的 appID 匹配,系统便会在设备上为 App 注册该域名下特定路径拦截规则。
  4. 无缝拉起: 此后,点击此域名下的匹配 URL,系统即可在瞬时自动拉起 App。
🤖 Android 应用链接 (App Links) 工作原理

Android App Links 是谷歌在 Android 6.0 及更高版本推出的方案,能自动将用户引导至相应的特定内容,无需弹出应用选择器对话框。

核心工作机制:

  1. 清单声明: 在 App 的 AndroidManifest.xml 的 Intent 过滤器中配置 android:autoVerify="true" 并指定目标域名。
  2. 系统安装校验: 在安装 App 时,Android 系统的 Package Manager 会向您的源站 /.well-known/assetlinks.json 发起 HTTPS 校验。
  3. 校验确认: 确认域名所提供 JSON 中的 package_name 和 SHA-256 证书指纹与正在安装的 App 签名完全相符后,系统会将该 App 设为该域名链接的默认处理程序。
⚡ 关联域配置的 5 大常见巨坑 (运维避坑指南)
1. 发生重定向

苹果抓取程序和 Android 系统在读取 AASA/Assetlinks 文件的请求链路上严禁任何 HTTP 301/302 重定向,哪怕只是 http 到 https 或者是斜杠后缀补全。

2. 错误的 Content-Type

源站的 AASA 响应 Header 必须为 application/json 或 application/pkcs7-mime,Assetlinks 必须为 application/json。返回 text/plain 或 text/html 会被彻底拒收。

3. 语法及尾部逗号

AASA 声明必须是严格的合规 JSON。常见的如尾部逗号、中文双引号、无效注释会使系统 JSON 解析器直接崩溃报错,导致注册失效。

4. 苹果 CDN 缓存刷新迟钝

苹果官方 CDN 采用约 24 小时的强缓存机制,在开发调试中修改了源站 AASA 往往需要漫长的等待。若要即时生效,可在系统设置中通过开启 Developer mode 调试直接读取源站。

5. 不受信的 SSL 证书

如果您的源站使用自签名、不受信或已过期的 HTTPS 证书,即使在电脑上能正常访问,操作系统和苹果抓取节点出于安全机制,也将拒绝与源站通信。