使用ProGuard和Firebase Auth进行Flutter构建时会崩溃

cre*_*not 7 android firebase firebase-authentication flutter

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

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/auth/internal/zzae;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ric*_*eap 10

包括

-keep class com.google.firebase.** { *; }
Run Code Online (Sandbox Code Playgroud)

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

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

您可以尝试仅keep使用所使用的顶级API类(如果不阅读firebase插件实现,就可能无法分辨出什么)可以实现尺寸减小,但是要实现可能的减小,需要进行大量工作APK大小,可能会引入一些脆弱性。

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