【问题标题】:Configure Proguard-rules with Firebase使用 Firebase 配置 Proguard 规则
【发布时间】:2018-10-21 20:37:25
【问题描述】:

我有这个项目,我使用 Firebase 实时数据库。

这个proguard规则写对吗?

-keepattributes Signature

-keepclassmembers class activity.** {
  *;
}
-keepclassmembers class adapter.** {
   *;
}
-keepclassmembers class fragment.** {
  *;
}
-keepclassmembers class persistence.** {
  *;
}
-keepclassmembers class services.** {
   *;
}

该应用程序运行良好,但当我在 PlayStore 上发布时,查询似乎不起作用。在我的 gradle 中我添加了

release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
    }

我做错了什么?

【问题讨论】:

    标签: android firebase firebase-realtime-database android-proguard


    【解决方案1】:

    对于将由 firebase 序列化/反序列化的类,您应该 -keep,否则将无法对这些类使用反射。 -keepclassmembers 只会保留成员并混淆类的名称,如果您的库使用反射,这是您绝对不想做的事情。尝试将这些类的 -keepclassmembers 替换为 -keep

    -keep class persistence.** {
      *;
    }
    

    【讨论】:

    • 好的!现在看来可以了……但是验证电话的代码(通过 Firebase auth)没有到达
    • 未到是什么意思?
    • 当您使用 Firebase 进行身份验证时,应该会收到验证码
    • 这可能与proguard根本没有关系,你检查你是否没有收到错误?此外,如果您最近进行了身份验证,您将不会收到新代码
    【解决方案2】:
    -keep class persistence.**  {
    *;
    }
    

    这里的** 表示每个文件都包含在以下包中。

    【讨论】:

    • 这个答案似乎没有添加其他answer未涵盖的任何信息。
    猜你喜欢
    • 1970-01-01
    • 2017-05-23
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多