Created
September 29, 2015 10:23
-
-
Save Krishan14sharma/a8b01cbd868d62598876 to your computer and use it in GitHub Desktop.
Common proguard rules
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/zapbuild/adt-bundle-linux-x86_64-20140702/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.javascript.interface.for.webview { | |
| # public *; | |
| #} | |
| ##----------------------------Retrofit------------------- | |
| -dontwarn retrofit.** | |
| -keep class retrofit.** { *; } | |
| -keepattributes Signature | |
| -keepattributes Exceptions | |
| ##------------------------ButterKnife------------------- | |
| -keep class butterknife.** { *; } | |
| -dontwarn butterknife.internal.** | |
| -keep class **$$ViewInjector { *; } | |
| -keepclasseswithmembernames class * { | |
| @butterknife.* <fields>; | |
| } | |
| -keepclasseswithmembernames class * { | |
| @butterknife.* <methods>; | |
| } | |
| ##-------------------------Validation Komensky----------------------- | |
| -keepattributes *Annotation* | |
| -keep class eu.inmite.android.lib.validations.form.annotations.** { *; } | |
| -keep class * implements eu.inmite.android.lib.validations.form.iface.ICondition | |
| -keep class * implements eu.inmite.android.lib.validations.form.iface.IValidator | |
| -keep class * implements eu.inmite.android.lib.validations.form.iface.IFieldAdapter | |
| -keepclassmembers class ** { | |
| @eu.inmite.android.lib.validations.form.annotations.** *; | |
| } | |
| ##--------------- 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 | |
| -keep class sun.misc.Unsafe { *; } | |
| #-keep class com.google.gson.stream.** { *; } | |
| # Application classes that will be serialized/deserialized over Gson | |
| -keep class com.google.gson.examples.android.model.** { *; } | |
| ##---------------common for all Android apps ---------- | |
| -optimizationpasses 5 | |
| -dontusemixedcaseclassnames | |
| -dontskipnonpubliclibraryclasses | |
| -dontskipnonpubliclibraryclassmembers | |
| -dontpreverify | |
| -verbose | |
| -dump class_files.txt | |
| -printseeds seeds.txt | |
| -printusage unused.txt | |
| -printmapping mapping.txt | |
| -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* | |
| -allowaccessmodification | |
| -keepattributes *Annotation* | |
| -renamesourcefileattribute SourceFile | |
| -keepattributes SourceFile,LineNumberTable | |
| -repackageclasses '' | |
| -keep public class * extends android.app.Activity | |
| -keep public class * extends android.app.Application | |
| -keep public class * extends android.app.Service | |
| -keep public class * extends android.content.BroadcastReceiver | |
| -keep public class * extends android.content.ContentProvider | |
| -keep public class * extends android.app.backup.BackupAgentHelper | |
| -keep public class * extends android.preference.Preference | |
| -keep public class com.android.vending.licensing.ILicensingService | |
| -dontnote com.android.vending.licensing.ILicensingService | |
| # Explicitly preserve all serialization members. The Serializable interface | |
| # is only a marker interface, so it wouldn't save them. | |
| -keepclassmembers class * implements java.io.Serializable { | |
| static final long serialVersionUID; | |
| private static final java.io.ObjectStreamField[] serialPersistentFields; | |
| private void writeObject(java.io.ObjectOutputStream); | |
| private void readObject(java.io.ObjectInputStream); | |
| java.lang.Object writeReplace(); | |
| java.lang.Object readResolve(); | |
| } | |
| # Preserve all native method names and the names of their classes. | |
| -keepclasseswithmembernames class * { | |
| native <methods>; | |
| } | |
| -keepclasseswithmembernames class * { | |
| public <init>(android.content.Context, android.util.AttributeSet); | |
| } | |
| -keepclasseswithmembernames class * { | |
| public <init>(android.content.Context, android.util.AttributeSet, int); | |
| } | |
| # Preserve static fields of inner classes of R classes that might be accessed | |
| # through introspection. | |
| -keepclassmembers class **.R$* { | |
| public static <fields>; | |
| } | |
| # Preserve the special static methods that are required in all enumeration classes. | |
| -keepclassmembers enum * { | |
| public static **[] values(); | |
| public static ** valueOf(java.lang.String); | |
| } | |
| -keep public class * { | |
| public protected *; | |
| } | |
| -keep class * implements android.os.Parcelable { | |
| public static final android.os.Parcelable$Creator *; | |
| } | |
| ##---------------End: proguard configuration common for all Android apps ---------- | |
| ##---------------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 | |
| ##---------------------------Otto------------------------------ | |
| -keepattributes *Annotation* | |
| -keepclassmembers class ** { | |
| @com.squareup.otto.Subscribe public *; | |
| @com.squareup.otto.Produce public *; | |
| } | |
| #-------------------------------Google Play Service-------------------------------- | |
| -keep class * extends java.util.ListResourceBundle { | |
| protected Object[][] getContents(); | |
| } | |
| -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { | |
| public static final *** NULL; | |
| } | |
| -keepnames @com.google.android.gms.common.annotation.KeepName class * | |
| -keepclassmembernames class * { | |
| @com.google.android.gms.common.annotation.KeepName *; | |
| } | |
| -keepnames class * implements android.os.Parcelable { | |
| public static final ** CREATOR; | |
| } | |
| #------------------------------Crashylytics-------------------------------------------------------- | |
| -keep class com.crashlytics.** { *; } | |
| -keepattributes SourceFile,LineNumberTable | |
| #------------------------------Rx android-------------------------------------------------------------------- | |
| # RxJava 0.21 | |
| -keep class rx.schedulers.Schedulers { | |
| public static <methods>; | |
| } | |
| -keep class rx.schedulers.ImmediateScheduler { | |
| public <methods>; | |
| } | |
| -keep class rx.schedulers.TestScheduler { | |
| public <methods>; | |
| } | |
| -keep class rx.schedulers.Schedulers { | |
| public static ** test(); | |
| } | |
| #-----------------------------------Okio-------------------------------------------------------------- | |
| -dontwarn okio.** | |
| #----------------------------------Rx internals | |
| -dontwarn rx.internal.util.** |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment