Skip to content

Instantly share code, notes, and snippets.

@japgolly
Last active December 12, 2015 08:49
Show Gist options
  • Save japgolly/4747423 to your computer and use it in GitHub Desktop.
Save japgolly/4747423 to your computer and use it in GitHub Desktop.
Proguard configs
# Dalvik VM specific
-dontpreverify
# Dev-only
-dontobfuscate
-dontoptimize
# My stuff
-keep public class golly.** { public protected *; }
-keep public class com.beardedlogic.** { public protected *; }
# Scala stuff
-dontwarn scala.**
-dontnote scala.Enumeration
-keep public class scala.Option
-keep public class scala.Function0
-keep public class scala.Function1
-keep public class scala.Function2
-keep public class scala.Product
-keep public class scala.Tuple2
-keep public class scala.collection.Seq
-keep public class scala.collection.immutable.List
-keep public class scala.collection.immutable.Map
-keep public class scala.collection.immutable.Seq
-keep public class scala.collection.immutable.Set
-keep public class scala.collection.immutable.Vector
# https://issues.scala-lang.org/browse/SI-5397
-keep class scala.collection.SeqLike {
public protected *;
}
# Android stuff
-dontwarn android.support.**
-dontwarn com.google.ads.**
-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.app.backup.BackupAgentHelper
-keep public class * extends android.appwidget.AppWidgetProvider
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
# -keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
# Other
-dontnote javax.xml.**
-dontnote org.w3c.dom.**
-dontnote org.xml.sax.**
-keepattributes ** # eg @Inject
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Dalvik VM specific
-dontpreverify
# Obfuscation
-keeppackagenames scala.**,android.**
# Optimisation
-allowaccessmodification
-optimizationpasses 5
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable # Android + Scala
# Disable verbose & debug logging (TODO: Confirm this works)
-assumenosideeffects class android.util.Log {
public static int d(...);
public static int v(...);
}
# My stuff
-keep public class golly.** { public protected *; }
-keep public class com.beardedlogic.** { public protected *; }
# Scala stuff
-dontwarn scala.**
-dontnote scala.Enumeration
-keep public class scala.Option
-keep public class scala.Function0
-keep public class scala.Function1
-keep public class scala.Function2
-keep public class scala.Product
-keep public class scala.Tuple2
-keep public class scala.collection.Seq
-keep public class scala.collection.immutable.List
-keep public class scala.collection.immutable.Map
-keep public class scala.collection.immutable.Seq
-keep public class scala.collection.immutable.Set
-keep public class scala.collection.immutable.Vector
# https://issues.scala-lang.org/browse/SI-5397
-keep class scala.collection.SeqLike {
public protected *;
}
# Android stuff
-dontwarn android.support.**
-dontwarn com.google.ads.**
-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.app.backup.BackupAgentHelper
-keep public class * extends android.appwidget.AppWidgetProvider
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
# -keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
# Other
-dontnote javax.xml.**
-dontnote org.w3c.dom.**
-dontnote org.xml.sax.**
-keepattributes ** # eg @Inject
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment