Android端跨应用及网站自动登录关联失效问题求助
我正在为应用配置跨应用及网站的Google Smart Lock自动登录功能,已按照官方文档完成assetlinks.json的配置(部署在网站的.well-known目录下),文件内容如下:
[ { "relation": [ "delegate_permission/common.get_login_creds" ], "target": { "namespace": "web", "site": "https://my.website.com" } }, { "relation": [ "delegate_permission/common.get_login_creds" ], "target": { "namespace": "android_app", "package_name": "com.my.app", "sha256_cert_fingerprints": [ "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX" ] } } ]
但目前应用中完全没有出现凭证关联效果,已确认以下事项:
- 应用已发布至Beta渠道,使用Google Play生产密钥签名(符合官方Alpha/Beta渠道可正常生效的说明)
- 已两次提交Google审核(虽为可选步骤),但超过2天未收到回复
- 网站可公开访问,且无
robots.txt限制 assetlinks.json返回200状态码,且Content-Type为application/json
可尝试以下进一步排查操作:
校验SHA256指纹准确性
确保sha256_cert_fingerprints中的值与Google Play后台「应用签名」页面显示的应用签名证书SHA-256指纹完全一致,不要误用上传密钥的指纹。也可通过命令keytool -list -v -keystore your-release-key.jks手动验证,注意大小写、冒号分隔格式必须完全匹配。验证assetlinks.json合法性
检查JSON语法是否存在逗号遗漏、引号不匹配等错误;若需要双向同步凭证,建议在relation字段中同时添加delegate_permission/common.register_login_creds;确认site字段为完整根域名,无多余路径且使用HTTPS协议。检查应用端集成代码
确认应用已正确初始化Smart Lock,登录成功后调用Credentials.save()保存凭证,启动时调用Credentials.request()尝试自动获取凭证;确保应用包名与assetlinks.json中的package_name完全一致(包括大小写)。设备端设置与测试环境
测试设备需登录与Google Play Beta渠道相同的Google账号;检查设备「设置」>「密码与账号」>「自动填充服务」>「Google」是否开启并授予权限;清除应用及Google Play服务缓存后重启设备;先在Chrome浏览器登录网站并保存密码,再打开应用测试。域名所有权验证
若审核迟迟无回复,可在Google Search Console完成网站域名所有权验证,确保关联域名已通过验证,这可能帮助加快凭证关联的生效速度。
内容的提问来源于stack exchange,提问作者futurebaby

