A Kotbase user
reported
that the
documented ProGuard rules
are insufficient. I noticed
these changes
that were made to the documentation haven’t been published. There was also a
small addition
to those rules that was still needed. The user reported that these rules seem to be working:
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings
-keep class com.couchbase.lite.ConnectionStatus { <init>(...); }
-keep class com.couchbase.lite.LiteCoreException { static <methods>; }
-keep class com.couchbase.lite.internal.replicator.CBLTrustManager {
public java.util.List checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.lang.String);
-keep interface com.couchbase.lite.internal.ReplicationCollection$C4Filter
-keep class com.couchbase.lite.internal.ReplicationCollection {
static <methods>;
<fields>;
-keep class com.couchbase.lite.internal.fleece.FLSliceResult {
static <methods>;
<fields>;
<init>(...);
-keep class com.couchbase.lite.internal.core.C4* {
static <methods>;
<fields>;
<init>(...);
Hey Jeff!
Yes. Those are exactly the rules that should be used.
They are what should be configured in consumerProguardFiles. It looks to me, though, as if the exclusion for the static methods in FLSliceResult was missing until the most recent release, 3.2.2. Customers can, surely, use the rules you’ve shown. They should, though, need only:
-keep class com.couchbase.lite.internal.fleece.FLSliceResult {
static <methods>;