一尘不染

使用带有Firebase Auth的ProGuard的Flutter构建崩溃

flutter

我按照以下说明将ProGuard添加到Flutter中,现在在启动应用程序时看到此异常:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/auth/internal/zzae;

显然,这已连接到 Firebase Auth 。提到的说明还指出以下内容:

任何其他库(例如Firebase)都需要添加自己的规则。

但是,我没有找到任何资源 来显示需要添加到的语句proguard-rules.pro
我可以想象在Auth组件修复后,其他Firebase组件也会类似地崩溃,因此我想知道 “例如Firebase”
的含义是什么,即,是否每个组件都有规则,或者我是否只需要修复此问题用于Firebase身份验证。


阅读 198

收藏
2020-08-13

共1个答案

一尘不染

包括

-keep class com.google.firebase.** { *; }

Proguard为您提供了以下功能:删除死代码,通过将类成员和包名称重命名为短字符串来减少代码大小,并通过重命名使代码更难以阅读,从而进行反向工程。

通过保持整com.google.firebase棵树完整无损,您将无法从尺寸减小中受益。我猜混淆在这种情况下是不相关的,因为它是一个开源库。

您可以尝试仅keep使用所使用的顶级API类(不阅读firebase插件实现就无法分辨出什么)来达到减小大小的目的,但是要实现可能的减少,需要做很多工作APK大小,可能会引入一些脆弱性。

不,它不是“最佳”的,但是很简单。

2020-08-13