Android 开发

Android App Links 验证 · 上线前核对声明

粘贴 assetlinks.json,按需填写包名和应用签名证书 SHA-256 指纹,再手动检查。

Android App Links 验证

assetlinks.json 输入

本地检查结果

粘贴 assetlinks.json 或载入示例。

部署核对清单

以下项目未经过本地工具实测。

  • 每个目标主机都通过 HTTPS 的 /.well-known/assetlinks.json 直接返回 application/json,不发生重定向。
  • 对照 Play Console 中发布应用的签名证书 SHA-256;只有确实需要时才加入其他证书。
  • 确认 Manifest 的 Web intent filter 含 autoVerify,并覆盖要处理的主机与路径。
  • 在已安装的设备上执行 adb shell pm get-app-links;更新网站文件后触发重新验证。

JSON、包名和证书指纹只在当前标签页检查;不会联系域名。

选项

粘贴 assetlinks.json 或载入示例。

链接仍在浏览器打开时,assetlinks.json 能解析不代表它授权了当前安装的应用。Android App Links 验证把包名、handle_all_urls 关系和证书指纹放回同一条声明里核对,避免跨条拼出假匹配。

准备发布文件或排查应用链接验证失败时,可以先做 Android App Links 配置检查和 assetlinks.json 校验,再把结果与 Play App Signing 中的证书信息对照。这里不会抓取域名,服务器响应和设备状态要另行检查。

为什么先做 Android App Links 验证

区分文件里的授权声明与真实设备是否通过验证。

同一条声明才算匹配

Android App Links 验证不会把第一条的包名与第二条的 SHA-256 指纹拼在一起。报告分别列出每条声明及关系,帮助定位指纹不匹配或缺少 handle_all_urls 的位置。

一条应用声明连接包名、关系和证书指纹,旁边两条分离的声明不能合并匹配。

部署项目保持待核对

Android App Links 验证只分析粘贴内容。HTTPS、固定路径、JSON 类型、重定向、Manifest 的 autoVerify 和设备重验都留在独立清单中,不会被本地通过结果误标为已验证。

本地 JSON 检查报告与网站部署和 Android 设备复验清单并列。

先核对证书,再读匹配结论

01

选对签名证书

如果使用 Play App Signing,先从 Play Console 取得应用签名证书的 SHA-256 指纹。上传密钥、调试密钥或 APK 文件哈希都可能不同;输入框支持带冒号或不带冒号的十六进制值。

02

最后一次修改后再检查

本工具只手动运行,也可按 Ctrl/Cmd+Enter。修改 JSON、包名或指纹会立刻让旧报告过期并禁用导出;语法出错时给出行列位置。

03

把三层结论分开看

结构合法、找到同一声明的匹配以及设备真正通过验证是三件事。include 文件不会被联网展开,报告会保留不确定状态;下载得到的是完整报告,不受面板分页影响。

从 DAL 结构到证书匹配逐项定位

逐条检查声明

解析顶层数组、relation、android_app 或 web 目标,并用数组下标及字段路径定位问题。合法的 include 会提示未展开,不会被当成格式错误。

核对 SHA-256 指纹

预期值允许大小写或省略冒号,比较时归一化;文件里的非标准大小写或分隔方式单独提示。SHA-1 指纹不符合 App Links 所需的签名证书指纹。

关系与包名联合判断

只把同一条 android_app 声明里的 handle_all_urls、包名与指纹算作匹配。其他 Digital Asset Links 关系仍显示,但不会自动变成应用链接授权。

导出完整检查报告

复制或下载包含所有声明与问题的 JSON 报告。面板每次先显示 50 条,长文件也不必一次渲染所有项目。

本地检查的边界

不会测服务器响应
本页不访问域名,也不测 TLS、内容类型或重定向。请在各目标主机的 HTTPS /.well-known/assetlinks.json 路径单独核对实际响应。
不会推断应用签名
预期指纹可留空,但这样无法确认某张证书是否被授权。必须使用应用签名证书的 SHA-256,不能用 JSON 文件哈希、SHA-1 或仅凭包名替代。
include 与动态规则只识别
include 指向的文件不会展开,因此未找到本地匹配时只能说尚不确定。relation_extensions 中的 Android 15 动态路径规则不会在这里模拟。
不能替代设备验证
Manifest 的 autoVerify、实际安装证书、缓存与每个域名的状态都在文件之外。请在安装后的设备上用 adb 检查,并在更改服务器文件后重新验证。

Android App Links 验证常见问题

App Links Assistant 验证通过,为什么还是打不开应用?

向导通过只能说明它检查过的配置项。Android App Links 验证能查粘贴文件中的声明,但还要核对线上路径、重定向、实际安装证书、Manifest 范围及设备上的验证状态。

为什么同一条链接在一台设备上正常,在另一台设备上不行?

两台设备可能安装了不同签名的构建、缓存了不同的网站声明,或运行不同 Android 版本。先比较证书与主机,再分别用 adb 查询设备状态;本地报告不能替设备作结论。

修复应用链接一定要发布新版本吗?

如果只改服务器上的错误指纹或声明,可能无需改应用;若 Manifest 的 host、autoVerify 或路径范围有错,就可能需要更新应用。这个工具只检查 JSON,不能代替构建检查。

修改 assetlinks.json 后,系统多久会重新验证?

设备何时刷新受系统与缓存影响,不能从本地 JSON 推出固定时间。更改线上文件后,可用 adb shell pm verify-app-links --re-verify 针对已安装包名触发重验,再查询状态。

在哪里获取应用签名证书的 SHA-256 指纹?

使用 Play App Signing 时,从 Play Console 的应用签名密钥证书读取 SHA-256;本地构建可用 keytool 查看对应签名证书。这里需要的是证书指纹,不是 assetlinks.json 的文件哈希。

声明结果与预期不同?

现在进行 Android App Links 验证

把待发布的声明列表交给 Android App Links 验证工具,先定位包名和签名证书问题,再按部署清单检查服务器与设备。

粘贴内容只在当前浏览器标签页处理。