【问题标题】:Is there any proguard rules should use while using EncryptedSharedPreferences?使用 EncryptedSharedPreferences 时是否应使用任何 proguard 规则?
【发布时间】:2020-08-05 17:23:56
【问题描述】:

在使用 EncryptedSharedPreferences 之前,我的应用在 release 模式下运行良好(minifyEnabled = true),添加security library (版本 1.0.0-rc01 ) 到我的应用程序打开时应用程序崩溃,如果我使用 (minifyEnabled = false) 应用程序工作正常,我想我错过了将它添加到 proguard-rules.pro 但我搜索了很多没有发现任何东西。

【问题讨论】:

标签: android proguard androidx android-jetpack-security


【解决方案1】:

Tink 混淆似乎有问题。我目前的解决方法是将此规则添加到 proguard:

-keep class com.google.crypto.tink.** { *; }

但也要跟踪问题here的更新。

更新 - 06.01.2020

有更有效的解决方案(感谢@jtsalva指出):

-keepclassmembers class * extends com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite {
  <fields>;
}

更新 - 08.19.2020

这个问题现在应该在 Version 1.0.0-rc03 中得到解决

【讨论】:

  • 这似乎是最新版本-keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite { &lt;fields&gt;; }
【解决方案2】:

此问题已通过更有针对性的 proguard 规则 here 得到解答

-keepclassmembers class * extends com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite {
    <fields>;
}

与当前接受的答案相比,这为我的应用节省了 ~0.2MB

【讨论】:

    【解决方案3】:

    我尝试以上所有。不适用于我的情况。 这就是我所做的和完美的工作:

    -keepclassmembers class * extends com.google** {
        <fields>; }
    

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 2021-04-02
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      相关资源
      最近更新 更多