# Project #-printmapping mapping.txt # Application -keep, includedescriptorclasses public class com.twofasapp.** { *; } -keep class com.twofasapp.** {*;} # rafakob -keep class com.rafakob.** {*;} # Okio -keep class sun.misc.Unsafe { *; } -dontwarn java.nio.file.* -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn okio.** # OkHttp -keepattributes Signature -keepattributes *Annotation* -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn okhttp3.** # Others -keep class com.daimajia.** { *; } -dontwarn com.daimajia.** -keepnames class com.daimajia.** # Crashlytics -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public class * extends java.lang.Exception -keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.** #SQLCipher -keep,includedescriptorclasses class net.sqlcipher.** { *; } -keep,includedescriptorclasses interface net.sqlcipher.** { *; } #Google Auth # Needed to keep generic types and @Key annotations accessed via reflection -keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault -keepclassmembers class * { @com.google.api.client.util.Key ; } # Needed by google-http-client-android when linking against an older platform version -dontwarn com.google.api.client.extensions.android.** # Needed by google-api-client-android when linking against an older platform version -dontwarn com.google.api.client.googleapis.extensions.android.** # Needed by google-play-services when linking against an older platform version -dontwarn com.google.android.gms.** # Kotlin Serialization # Keep `Companion` object fields of serializable classes. # This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects. -if @kotlinx.serialization.Serializable class ** -keepclassmembers class <1> { static <1>$Companion Companion; } # Keep `serializer()` on companion objects (both default and named) of serializable classes. -if @kotlinx.serialization.Serializable class ** { static **$* *; } -keepclassmembers class <1>$<3> { kotlinx.serialization.KSerializer serializer(...); } # Keep `INSTANCE.serializer()` of serializable objects. -if @kotlinx.serialization.Serializable class ** { public static ** INSTANCE; } -keepclassmembers class <1> { public static <1> INSTANCE; kotlinx.serialization.KSerializer serializer(...); } # @Serializable and @Polymorphic are used at runtime for polymorphic serialization. -keepattributes RuntimeVisibleAnnotations,AnnotationDefault -dontwarn org.slf4j.impl.StaticLoggerBinder -keep class com.google.api.services.drive.** { *;} # Serializer for classes with named companion objects are retrieved using `getDeclaredClasses`. # If you have any, uncomment and replace classes with those containing named companion objects. #-keepattributes InnerClasses # Needed for `getDeclaredClasses`. #-if @kotlinx.serialization.Serializable class #com.example.myapplication.HasNamedCompanion, # <-- List serializable classes with named companions. #com.example.myapplication.HasNamedCompanion2 #{ # static **$* *; #} #-keepnames class <1>$$serializer { # -keepnames suffices; class is kept when serializer() is kept. # static <1>$$serializer INSTANCE; #}