Last active
September 28, 2022 06:30
-
-
Save chris-carneiro/e183bb1f2390231356d95c791d76f3a3 to your computer and use it in GitHub Desktop.
Proguard rules sample for Retrofit2, Gson, OrmLite, Javamail, Otto, disable logging
This file contains hidden or 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
# Add project specific ProGuard rules here. | |
# By default, the flags in this file are appended to flags specified | |
# in /home/chris/Android/Sdk/tools/proguard/proguard-android.txt | |
# You can edit the include path and order by changing the proguardFiles | |
# directive in build.gradle. | |
# | |
# For more details, see | |
# http://developer.android.com/guide/developing/tools/proguard.html | |
# Add any project specific keep options here: | |
# If your project uses WebView with JS, uncomment the following | |
# and specify the fully qualified class name to the JavaScript interface | |
# class: | |
#-keepclassmembers class fqcn.of.javascriptToInject.interface.for.webview { | |
# public *; | |
#} | |
-dontwarn okio.** | |
-dontwarn okhttp3.** | |
-dontwarn retrofit2.** | |
## keep Enum in Response Objects | |
-keepclassmembers enum com.android.services.** { *; } | |
## Note not be needed unless some model classes don't implement Serializable interface | |
## Keep model classes used by ORMlite | |
-keep class com.android.model.** | |
## keep classes and class members that implement java.io.Serializable from being removed or renamed | |
## Fixes "Class class com.twinpeek.android.model.User does not have an id field" execption | |
-keep class * implements java.io.Serializable { | |
*; | |
} | |
## Rules for Retrofit2 | |
-keepclasseswithmembers class * { | |
@retrofit2.http.* <methods>; | |
} | |
# Platform calls Class.forName on types which do not exist on Android to determine platform. | |
-dontnote retrofit2.Platform | |
# Platform used when running on RoboVM on iOS. Will not be used at runtime. | |
-dontnote retrofit2.Platform$IOS$MainThreadExecutor | |
# Platform used when running on Java 8 VMs. Will not be used at runtime. | |
-dontwarn retrofit2.Platform$Java8 | |
# Retain generic type information for use by reflection by converters and adapters. | |
-keepattributes Signature | |
# Retain declared checked exceptions for use by a Proxy instance. | |
-keepattributes Exceptions | |
## Rules for Gson | |
# For using GSON @Expose annotation | |
-keepattributes *Annotation* | |
# Gson specific classes | |
-keep class sun.misc.Unsafe { *; } | |
-keep class com.google.gson.stream.** { *; } | |
# 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 | |
# Rules for OrmLite uses reflection | |
-keep class com.j256.** | |
-keepclassmembers class com.j256.** { *; } | |
-keep enum com.j256.** | |
-keepclassmembers enum com.j256.** { *; } | |
-keep interface com.j256.** | |
-keepclassmembers interface com.j256.** { *; } | |
# Rules for Javamail | |
-keep class javax.** {*;} | |
-keep class com.sun.** {*;} | |
-keep class myjava.** {*;} | |
-keep class org.apache.harmony.** {*;} | |
-keep public class MailClient {*;} | |
-dontwarn com.sun.mail.** | |
-dontwarn java.awt.** | |
-dontwarn java.beans.Beans | |
-dontwarn javax.security.** | |
# Otto Library | |
-keepclassmembers class ** { | |
@com.squareup.otto.Subscribe public *; | |
@com.squareup.otto.Produce public *; | |
} | |
# Remove logs, don't forget to use 'proguard-android-optimize.txt' file in build.gradle | |
-assumenosideeffects class android.util.Log { | |
public static int d(...); | |
public static int v(...); | |
public static int i(...); | |
public static int w(...); | |
public static int e(...); | |
public static int wtf(...); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment