ProGuard Configuration
Automatic ProGuard Rules (Recommended)
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
:
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
:
-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.**