FireAuth手机验证发布后失效,已添加SHA密钥仍报错求助
Firebase发布版手机验证失败问题排查与解决
核心错误分析
从日志来看,关键故障点集中在:
FirebearCryptoHelper加密模块初始化失败,无法获取公钥,导致reCAPTCHA加密密钥生成中断- 错误码17093提示缺少有效应用标识,SafetyNet与reCAPTCHA验证均未通过
解决方案
1. 确认发布版签名的SHA密钥已正确配置
- 用
keytool命令导出发布密钥库的SHA-1和SHA-256指纹:keytool -list -v -keystore 你的发布密钥库路径.jks -alias 你的密钥别名 - 将输出的完整SHA指纹(冒号分隔的十六进制字符串)添加到Firebase控制台「项目设置」→「对应Android应用」→「SHA证书指纹」中,务必同时添加debug和release版本的指纹。
2. 更新google-services.json配置文件
添加完SHA指纹后,在Firebase控制台重新下载google-services.json,替换项目app模块下的旧文件,再重新构建发布版APK/AAB。
3. 添加ProGuard/R8混淆规则
发布版混淆可能破坏Firebase和reCAPTCHA的核心逻辑,在proguard-rules.pro中添加以下规则:
# Firebase Auth核心类 -keep class com.google.firebase.auth.** { *; } # reCAPTCHA与加密模块 -keep class com.google.recaptcha.** { *; } -keep class com.google.crypto.tink.** { *; } # SafetyNet验证相关 -keep class com.google.android.gms.safetynet.** { *; }
4. 验证应用包名与签名一致性
- 确保发布版应用的包名和Firebase项目中注册的包名完全一致(包括大小写)。
- 确认发布时使用的签名密钥库与生成SHA指纹时的密钥库为同一个,避免用错签名文件。
5. 检查SafetyNet服务可用性
- 测试设备需安装最新版Google Play Services。
- 国内设备需保证能正常访问Google服务,否则SafetyNet验证会失败,进而导致reCAPTCHA无法正常运行。
内容的提问来源于stack exchange,提问作者Hyejung
相关产品推荐
相关产品推荐

