Created
September 24, 2021 08:36
-
-
Save anupdey99/8bf977ee9228af1a917f658abe66f531 to your computer and use it in GitHub Desktop.
basic proguard rules
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##---------------Begin: proguard configuration for Retrofit ---------- | |
# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and | |
# EnclosingMethod is required to use InnerClasses. | |
-keepattributes Signature, InnerClasses, EnclosingMethod | |
# Retrofit does reflection on method and parameter annotations. | |
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations | |
# Retain service method parameters when optimizing. | |
-keepclassmembers,allowshrinking,allowobfuscation interface * { | |
@retrofit2.http.* <methods>; | |
} | |
# Ignore annotation used for build tooling. | |
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | |
# Ignore JSR 305 annotations for embedding nullability information. | |
-dontwarn javax.annotation.** | |
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. | |
-dontwarn kotlin.Unit | |
# Top-level functions that can only be used by Kotlin. | |
-dontwarn retrofit2.KotlinExtensions | |
# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy | |
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this. | |
-if interface * { @retrofit2.http.* <methods>; } | |
-keep,allowobfuscation interface <1> | |
##---------------End: proguard configuration for Retrofit ---------- | |
##---------------Begin: proguard configuration for Places ---------- | |
-dontwarn com.google.android.libraries.places.** | |
##---------------Begin: proguard configuration for OkHttp ---------- | |
# JSR 305 annotations are for embedding nullability information. | |
-dontwarn javax.annotation.** | |
# A resource is loaded with a relative path so the package of this class must be preserved. | |
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase | |
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. | |
-dontwarn org.codehaus.mojo.animal_sniffer.* | |
# OkHttp platform used only on JVM and when Conscrypt dependency is available. | |
-dontwarn okhttp3.internal.platform.ConscryptPlatform | |
-dontwarn com.android.tools.profiler.agent.okhttp.OkHttp2Interceptor | |
##---------------End: proguard configuration for OkHttp ---------- | |
##---------------Begin: proguard configuration for Glide ---------- | |
-keep public class * implements com.bumptech.glide.module.GlideModule | |
-keep public class * extends com.bumptech.glide.module.AppGlideModule { <init>(...); } | |
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { | |
**[] $VALUES; | |
public *; | |
} | |
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { | |
*** rewind(); | |
} | |
##---------------End: proguard configuration for Glide ---------- | |
##---------------Begin: proguard configuration for Gson ---------- | |
# Gson uses generic type information stored in a class file when working with fields. Proguard | |
# removes such information by default, so configure it to keep all of it. | |
-keepattributes Signature | |
# For using GSON @Expose annotation | |
-keepattributes *Annotation* | |
# Gson specific classes | |
-dontwarn sun.misc.** | |
#-keep class com.google.gson.stream.** { *; } | |
# Application classes that will be serialized/deserialized over Gson | |
-keep class com.google.gson.examples.android.responseModel.** { *; } | |
# Prevent proguard from stripping interface information from TypeAdapterFactory, | |
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) | |
-keep class * implements com.google.gson.TypeAdapterFactory | |
-keep class * implements com.google.gson.JsonSerializer | |
-keep class * implements com.google.gson.JsonDeserializer | |
# Prevent R8 from leaving Data object members always null | |
-keepclassmembers,allowobfuscation class * { | |
@com.google.gson.annotations.SerializedName <fields>; | |
} | |
##---------------End: proguard configuration for Gson ---------- | |
# Most of volatile fields are updated with AFU and should not be mangled | |
-keepclassmembernames class kotlinx.** { | |
volatile <fields>; | |
} | |
-keepclassmembers enum * { | |
public static **[] values(); | |
public static ** valueOf(java.lang.String); | |
} | |
#Firebase Crashlytics | |
-keepattributes SourceFile,LineNumberTable | |
-keep public class * extends java.lang.Exception | |
-keep class com.google.firebase.crashlytics.** { *; } | |
-dontwarn com.google.firebase.crashlytics.** | |
-keepclassmembers class com.bd.deliverytiger.app.api.model.chat.* { *; } | |
-keep class org.openxmlformats.** { *; } | |
-keep class schemaorg_apache_xmlbeans.* { *; } | |
-keep class schemasMicrosoftComOfficeExcel.* { *; } | |
-keep class schemasMicrosoftComOfficeOffice.* { *; } | |
-keep class schemasMicrosoftComOfficePowerpoint.* { *; } | |
-keep class schemasMicrosoftComOfficeWord.* { *; } | |
-keep class schemasMicrosoftComVml.* { *; } | |
-keep class aavax.xml.* { *; } | |
-keep class org.apache.poi.* { *; } | |
-keep class org.apache.xmlbeans.* { *; } | |
-keep class org.dom4j.* { *; } | |
-keep class org.w3c.dom.* { *; } | |
-keep class repackage.* { *; } | |
-keep class schemaorg_apache_xmlbeans.* { *; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment