# This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#manual/usage.html # Optimization is turned off by default. Dex does not like code run # through the ProGuard optimize and preverify steps (and performs some # of these optimizations on its own). -dontoptimize -dontpreverify -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose #To repackage classes on a single package #-repackageclasses '' #Uncomment if using annotations to keep them / generic type. -keepattributes *Annotation*, EnclosingMethod, Signature #안드로이드 support / apache / json 난독화를 진행하지 않는다.(모든 내용) -keep class android.support.v4.** { *; } -keep class com.google.** { *; } -keep class org.apache.** { *; } -keep class org.json.** { *; } -keep class com.nhn.**{ *; } #kakao 예외 처리 -keep class com.kakao.** { *; } -keepattributes Signature -keepclassmembers class * { public static ; public *; } -dontwarn android.support.v4.**,org.slf4j.**,com.google.android.gms.** #상기 선언된 내용에 대한 진행 중 발생하는 문제에 대해 경고하지 않는다. -dontwarn android.support.v4.** -dontwarn com.google.** -dontwarn org.apache.** -dontwarn m.client.android.library.core.bridge.** -dontwarn m.client.android.library.core.managers.** -dontwarn pub.devrel.easypermissions.** -dontwarn m.client.android.library.core.control.** -dontwarn m.client.android.library.core.utils.** -dontwarn m.client.android.library.core.view.** ####No obfuscation #-dontobfuscate #morpheus push -dontwarn m.client.push.library.** -dontwarn mpush.eclipse.paho.** -dontwarn mpush.eclipse.paho.client.mqttv3.internal.ssl.SecureSocketSslContextFactory #android -dontnote android.net.http.* -dontnote org.apache.http.** -dontnote org.json.** -dontnote com.google.** #Keep classes that are referenced on the AndroidManifest -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 * extends android.support.v4.app.Fragment #라이센스 관련 정보가 들어가 있을때는 아래의 주석을 제거한다. #-keep public class com.google.vending.licensing.ILicensingService #-keep public class com.android.vending.licensing.ILicensingService #To maintain custom components names that are used on layouts XML. #Uncomment if having any problem with the approach below #-keep public class custom.components.package.and.name.** # keep setters in Views so that animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } #To remove debug logs: -assumenosideeffects class android.util.Log { public static *** d(...); public static *** v(...); public static *** w(...); } #To avoid changing names of methods invoked on layout's onClick. # Uncomment and add specific method names if using onClick on layouts #-keepclassmembers class * { # public void onClickButton(android.view.View); #} #Maintain java native methods -keepclasseswithmembernames class * { native ; } #keep android class using context -keepclassmembers class * extends android.content.Context { public void *(android.view.View); public void *(android.view.MenuItem); } #To maintain custom components names that are used on layouts XML: -keep public class * extends android.view.View { public (android.content.Context); public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); public void set*(...); } #Maintain enums -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } #To keep parcelable classes (to serialize - deserialize objects to sent through Intents) -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #Keep the R -keepclassmembers class **.R$* { public static ; } ###### ADDITIONAL OPTIONS NOT USED NORMALLY #To keep callback calls. Uncomment if using any #http://proguard.sourceforge.net/index.html#/manual/examples.html#callback #-keep class mypackage.MyCallbackClass { # void myCallbackMethod(java.lang.String); #} #Uncomment if using Serializable -keepclassmembers class * implements java.io.Serializable { 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(); } # 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 *; #} #dynamic class loading에 관련된 클래스 들은 난독화를 진행하지 않는다. -keep public class m.client.android.library.core.managers.WNInterfaceManager -keep public class m.client.android.library.core.utils.ClassManager -keep public class m.client.android.library.core.bridge.InterfaceJavascript -keep public class m.client.android.library.core.common.MorpheusApplication #callback 함수들을 사용하는 클래스들은 난독화를 진행하지 않는다. -keep public class * extends m.client.android.library.core.networks.http.AsyncHttpNetwork { public protected *; } -keep public class * extends m.client.android.library.core.networks.socket.AsyncSocketNetwork { public protected *; } #native <-> script interface 함수들은 난독화 하지 않는다. -keep public class * extends m.client.android.library.core.control.AbstractInterface { public protected *; } -keep class android.support.multidex.MultiDexApplication { (); void attachBaseContext(android.content.Context); }