You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用外部DeepLink打开Android应用时跳转Chrome并显示403错误

排查App Links跳转异常(外部链接跳Chrome并403)的解决方案

核心排查与修复步骤:

1. 先解决Asset Links文件的访问与有效性问题

  • 直接在浏览器访问https://mydomain.co/.well-known/assetlinks.json,确认能正常返回JSON内容,不会出现403/404或跳转登录页。如果这里浏览器都拿不到文件,Android系统肯定验证失败,会 fallback 到浏览器打开链接,而你的服务器对/app路径设了权限,就会显示403。
  • 核对sha256_cert_fingerprints:必须和发布版签名证书的指纹完全一致(别用调试版证书)。用命令生成正确指纹:
    keytool -list -v -keystore 你的发布签名文件.jks
    
    复制SHA256值时要去掉空格,格式保持AA:BB:CC:...的样式。
  • 用在线JSON校验工具检查assetlinks.json的语法,确保没有引号、逗号这类低级错误。

2. 核对Manifest配置细节

  • 确保android:autoVerify="true"只在处理该域名的唯一一个intent-filter上,多了会导致验证冲突。
  • 确认pathPrefix="/app"覆盖了你测试的链接(比如https://mydomain.co/app/profile/edit_profile是符合规则的),但如果服务器本身对/app路径设了访问限制,一旦App Links验证失败,浏览器打开就会403——这本质是验证没通过导致的 fallback。

3. 查看设备上的App Links验证状态

  • 打开设备「设置」→「应用」→ 你的App →「打开链接」,看是否显示「已验证」。如果是「未验证」,说明系统没通过Asset Links校验,会直接跳浏览器。
  • 用adb命令强制重新验证并查看日志:
    adb shell pm verify-app-links --re-verify co.myapp.app
    adb logcat -b all -s PackageManager
    
    日志里会明确给出验证失败的原因(比如证书不匹配、Asset Links文件无法访问等)。

4. 服务器端的额外配置检查

  • 确保assetlinks.json的返回头Content-Type是application/json,有些服务器默认返回text/plain,会导致Android系统无法解析。
  • 确认域名的HTTPS证书是受信任的正规CA颁发的,自签名证书会导致验证失败。
  • 如果域名有重定向(比如HTTP转HTTPS、www转非www),要保证assetlinks.json在最终跳转的目标域名上能正常访问,重定向不能中断验证流程。

5. 理解测试场景的差异

  • adb命令是直接唤起App,跳过了系统的App Links验证逻辑,所以adb测试正常不代表验证通过。必须通过外部场景(比如短信、第三方App里的链接)测试,才能触发完整的验证流程。

内容的提问来源于stack exchange,提问作者devB78

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:50:24