Skip to content

Instantly share code, notes, and snippets.

@devapro
Forked from Miha-x64/proguard-rules.pro
Created December 24, 2019 13:50
Show Gist options
  • Select an option

  • Save devapro/8fc0f984f6f5db4dfd566e6965b50d06 to your computer and use it in GitHub Desktop.

Select an option

Save devapro/8fc0f984f6f5db4dfd566e6965b50d06 to your computer and use it in GitHub Desktop.
Healthy person's ProGuard rules for Android and Kotlin.
# shrink libraries (this in enabled by default since v. 4.5)
-dontskipnonpubliclibraryclasses
# preverify is useful only for J2ME
-dontpreverify
-optimizationpasses 5
# this seems to be enough
-overloadaggressively
# deal with it!
# remove indirection
-allowaccessmodification
# move everything into the root package
-repackageclasses ""
# remove source file names
-renamesourcefileattribute ""
# remove runtime assertions, they are enforced in compile-time by Kotlin compiler
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String);
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String);
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
public static void checkNotNull(java.lang.Object);
public static void checkNotNull(java.lang.Object, java.lang.String);
public static void checkNotNullExpressionValue(java.lang.Object, java.lang.String);
public static void checkNotNullParameter(java.lang.Object, java.lang.String);
public static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String);
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
}
# keep Parcelable Creators due to crappy interface design
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
}
# suppress warnings
-dontwarn android.support.**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment