云端验收不能只看链接有没有打开应用:页面可能只是被浏览器接管,参数也可能在跳转中丢失。要判断 Android App Link跳转路径的云端验收是否可靠,应同时检查网页域名与应用的关联、系统验证状态,以及不同入口下的最终落点。下面十种方案是核验维度,不代表未经说明的行业排名。
先明确验收对象:链路从哪里开始、到哪里结束
Android App Links 是基于已验证网站关联的应用链接机制。网站通常通过 assetlinks.json 声明可处理链接的应用包名和签名证书 SHA-256 指纹;应用则在清单文件中配置匹配网址的 intent-filter,并启用自动验证。任一处不匹配,都可能导致链接留在浏览器。
测试前先选定真实业务路径,例如从网页文章点击商品详情链接,记录原始网址、预期应用页面、未安装时的网页回退,以及需要保留的查询参数。不要只测试应用已在前台的情况。
年度十大核验方案:按检查对象比较
| 方案 | 核验重点 | 适用条件与局限 |
|---|---|---|
| 1. 清单静态检查 | 主机名、路径规则、自动验证配置 | 适合发布前审查;不能证明线上域名已正确关联。 |
| 2. 关联文件可访问性 | 检查域名根路径下的 /.well-known/assetlinks.json | 适合发现文件缺失、内容错误或访问受阻;还要确认响应不是登录页。 |
| 3. 包名与证书核对 | 比对关联文件中的应用包名和签名指纹 | 适合排查签名不一致;调试构建与正式签名可能不同。 |
| 4. 重定向与响应检查 | 观察关联文件请求及业务链接的 HTTP 跳转 | 适合发现错误跳转;代理、缓存或服务器配置会影响结果。 |
| 5. 系统域名验证状态 | 读取设备对目标域名的验证结果 | 适合定位系统层问题;命令与输出会随 Android 版本变化。 |
| 6. 冷启动与热启动 | 分别测试应用未运行和已运行时的落点 | 适合发现启动状态差异;需要记录每次启动前的设备状态。 |
| 7. 浏览器入口验证 | 从浏览器网页点击目标链接 | 贴近常见使用场景;浏览器设置和用户选择可能改变行为。 |
| 8. 参数与路径边界测试 | 检查路径大小写、查询参数、编码字符和尾部斜杠 | 适合验证路由规则;只测一个固定网址容易漏掉边界情况。 |
| 9. 未安装及回退测试 | 确认设备未安装应用时能否到达合理网页 | 适合验收完整体验;回退目标应由产品需求明确。 |
| 10. 系统版本与构建组合 | 在不同 Android 版本、应用版本和签名构建上复测 | 适合发布前回归;设备组合越多,覆盖更广,成本也越高。 |
云端执行流程:把结果变成可复查证据
- 固定输入。列出测试域名、完整链接、预期页面、应用包名、正式构建版本和签名来源;每次变更保留对应记录。
- 先查网站关联。请求目标域名的关联文件,确认可通过 HTTPS 访问,内容中的包名与 SHA-256 指纹对应实际发布构建。若有多个子域名,逐个核对,不能假定主域名配置会自动覆盖它们。
- 再查设备状态。在支持的 Android 测试设备上查看应用链接验证信息。Android 12 及以上设备可使用 adb shell pm get-app-links 包名查看关联状态;若需重新触发验证,可在适用设备上使用 adb shell pm verify-app-links --re-verify 包名。具体命令支持情况应以设备系统版本为准。
- 覆盖入口和状态。分别通过浏览器点击、应用未启动时打开、应用运行中再次打开来测试,并记录最终页面、参数是否保留、是否出现选择器或错误页。
- 保存证据并复测。记录设备 Android 版本、应用版本、测试时间、输入链接、系统状态和结果截图或日志。部署关联文件或签名配置变更后,等待设备完成验证,再进行复测。
怎么选:按故障风险而不是方案数量
若问题集中在应用完全不接管链接,优先组合方案 2、3、5:先查文件,再查证书,最后确认系统是否认可域名。若能打开应用但落错页面,则重点做方案 6、7、8,比较冷启动、热启动和不同参数下的路由结果。若验收面向正式发布,方案 9、10也应纳入,避免只在一台已安装应用的设备上得出结论。
比较云端服务或内部测试方案时,可用同一组网址和构建版本评估三点:能否选择目标系统版本、能否复现应用安装状态、能否导出足以复查的结果。Android App Link跳转路径的云端验收关注的是可重复的证据链,不是单次“打开成功”。
常见问题
云端设备显示验证成功,就代表所有链接都正常吗?
不代表。系统域名验证成功仅说明关联环节通过;具体路径是否匹配、参数是否保留,还需实际点击测试。
关联文件放在网站首页可以吗?
Android App Links 使用约定的 /.well-known/assetlinks.json 路径。仅在首页提供相同内容不能替代该位置。
为什么正式版正常,测试版却不跳转?
常见原因是测试构建与正式构建使用不同签名证书,关联文件未包含测试签名,或测试版本的包名不同。
最低限度要测哪些情况?
至少检查关联文件与签名、系统验证状态、浏览器点击、冷启动和未安装回退;再按实际路径补测参数和系统版本。这样才能完成有依据的 Android App Link跳转路径的云端验收。