ProGuard Configuration

ProGuard rules are automatically applied when you include the Anyline SDK in your project. No manual configuration is required.

The SDK includes a consumer-proguard-rules.pro file that automatically protects all necessary classes and dependencies when you enable ProGuard/R8 in your release builds.

Simply enable ProGuard in your app’s build.gradle:

app/build.gradle
android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

The Anyline SDK’s ProGuard rules will be automatically applied, protecting:

  • All public API classes (io.anyline.plugin.config., io.anyline.plugin.result.)

  • Core SDK functionality (io.anyline2.core.**)

  • Wrapper configuration classes (io.anyline.wrapper.config.**)

  • Third-party dependencies (Moshi JSON library)

  • Legacy classes (at.nineyards.anyline.**)

  • Kotlin metadata for proper serialization

Manual ProGuard Rules (Legacy)

If you need to add custom rules, you can manually include the following in your proguard-rules.pro:

proguard-rules.pro
-keep public class io.anyline.plugin.config.** {
    public protected *;
}
-keep public class io.anyline.plugin.result.** {
    public protected *;
}
-keep class io.anyline.wrapper.config.** {
    public protected *;
}
-keep public class io.anyline2.core.** {
    public protected *;
}
-keep class at.nineyards.anyline.** { *; }
-dontwarn at.nineyards.anyline.**

-dontwarn com.squareup.moshi.**
-keep class com.squareup.moshi.** { *; }
-keepclassmembers class * {
    @com.squareup.moshi.* <fields>;
}
-keep @com.squareup.moshi.JsonClass class * { *; }
-keepclassmembers class kotlin.Metadata { *; }
-dontwarn org.jetbrains.annotations.**