火力地堡 + Proguard/R8

Firebase + Proguard/R8

我目前正在我的项目中设置 Firebase (FCM),当我 运行 我的 R8 混淆应用程序时遇到问题,Firebase 服务 (FirebaseMessagingService) 不再工作。有没有人遇到过同样的问题?有什么解决办法吗?

UPD:最后我通过降级到

为 FCM 修复了它
com.google.firebase:firebase-messaging:15.0.0

有一些已弃用的 类 现在正在使用,但它有效。

UPD2: 运行使用最新版本的库对应用程序进行模糊处理时,我还注意到日志中的警告:

W/FA: Failed to retrieve Firebase Instance Id

这很可能是问题的根源。

只需查看 R8 在构建日志中抛出的投诉...然后按照说明进行操作。仅仅因为它可能为库本身提供配置,并不意味着它为您的应用程序代码提供配置。还要确保在 Firebase 控制台中添加了发布密钥的指纹。

终于搞定了,下一个proguard规则帮了我一个忙:

# Firebase
-keep class com.google.android.gms.** { *; }
-keep class com.google.firebase.** { *; } // especially this one

我的情况是我自己弄坏的。

在设置混淆时我打开调试模式进行测试

release {
    debuggable true
}

并结合

FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)

注定要失败,别是我:)