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

启用Proguard后Firebase Phone Auth无法发送验证码问题求助

解决开启混淆后Firebase Phone Auth无法发送验证短信的问题

嗨,我来帮你排查这个问题!当你开启minifyEnabled true后,Firebase Phone Auth没法发送验证短信,核心原因是你的ProGuard规则没有正确保留Firebase电话认证的核心类——这些类很多是通过反射调用的,ProGuard会误以为它们是无用代码,从而混淆或删除,导致验证流程中断。

现有ProGuard规则的不足

你当前的规则只笼统保留了com.firebase.**和com.google.android.gms.**,但Firebase Phone Auth有更具体的关键类(比如验证回调、凭证处理类)需要精准保留,否则会破坏短信发送的逻辑。

修正后的ProGuard规则

把你的proguard-rules.pro内容替换或补充为以下规则:

# 保留Firebase Auth核心组件及电话认证相关类
-keep class com.google.firebase.auth.** { *; }
-keep class com.google.firebase.auth.internal.** { *; }
-keep class com.google.firebase.auth.api.** { *; }

# 重点保留Phone Auth的核心类与回调
-keep class com.google.firebase.auth.PhoneAuthProvider { *; }
-keep class com.google.firebase.auth.PhoneAuthCredential { *; }
-keep class com.google.firebase.auth.PhoneAuthProvider$VerificationStateChangedCallbacks { *; }

# 保留Google Play Services任务处理类(Auth流程依赖它)
-keep class com.google.android.gms.tasks.** { *; }

# 保留你项目中自定义的Auth处理类(如果有,替换成你的包名)
# -keep class com.yourapppackage.auth.** { *; }

# 保留原有必要的规则
-keepattributes Signature
-keepattributes *Annotation*
-keep class persistence.** { *; }
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.okhttp.**
-dontwarn org.w3c.dom.bootstrap.DOMImplementationRegistry

为什么这样修改?

Firebase Phone Auth的验证流程依赖大量反射调用(比如回调接口的实例化、凭证生成),ProGuard无法自动识别这些隐式调用,必须显式指定保留这些类,才能保证短信发送、验证回调等功能正常运行。

额外检查点

  1. 确保你的Gradle配置中,proguardFiles路径正确(你当前的配置是对的,使用了默认的proguard-android.txt加上自定义规则)
  2. 如果你开启了shrinkResources true,确认没有误删和Auth相关的资源(比如字符串资源),不过这一般不会影响短信发送功能
  3. 修改规则后,执行Clean Project再重新构建Release版本测试

内容的提问来源于stack exchange,提问作者a.sarto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:25:50