Bubblewrap生成的TWA应用显示地址栏,但assetlinks配置无误
排查方向
核对APK包名与assetlinks配置的一致性
使用aapt dump badging app-release-signed.apk命令提取APK的包名,确保和assetlinks.json中package_name字段完全匹配,包括大小写、拼写,不能有任何差异。验证assetlinks.json的访问有效性
确保文件通过HTTPS访问(本地测试除外),无重定向,且返回的Content-Type为application/json。可通过curl -I https://你的域名/.well-known/assetlinks.json命令检查:状态码需为200,同时确认Content-Type字段正确。检查Bubblewrap的TWA配置文件
打开生成的twa-manifest.json,确认:host字段为配置assetlinks的目标域名;display字段设置为standalone或fullscreen(这两个模式会隐藏地址栏);launchUrl指向该域名下的有效路径。
再次确认签名证书的SHA256值
除了keytool -printcert -jarfile app-release-signed.apk,还可用apksigner verify --print-certs app-release-signed.apk获取SHA256值,对比两个工具的输出,确保复制到assetlinks.json中的值完全一致(注意大小写、空格)。排除设备缓存与网络问题
部分设备会缓存资产链接验证结果,尝试清除Chrome(或TWA依赖的浏览器内核)的缓存,或重启设备后重新安装APK。同时确保设备能正常访问你的域名,无网络拦截或墙的问题。确认安装的是签名后的正式APK
确保安装的是经过正式签名的app-release-signed.apk,而非调试版本——调试版本的签名配置通常不匹配assetlinks中的信息,会导致验证失败。
查看Asset Links验证的错误信息
可以通过Android Logcat获取详细的验证日志:
- 将设备连接到电脑,打开终端执行:
adb logcat -s DigitalAssetLinks:V TrustedWebActivity:V - 重新安装APK并打开TWA,终端会输出验证过程的日志,其中包含具体的失败原因(如文件获取失败、签名不匹配、包名不一致等)。
内容的提问来源于stack exchange,提问作者Quinten C

