diff --git a/library/build.gradle b/library/build.gradle index 99283036..5c129917 100755 --- a/library/build.gradle +++ b/library/build.gradle @@ -38,6 +38,7 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + consumerProguardFiles 'consumer-rules.pro' } } diff --git a/library/consumer-rules.pro b/library/consumer-rules.pro new file mode 100644 index 00000000..7edabcc2 --- /dev/null +++ b/library/consumer-rules.pro @@ -0,0 +1,22 @@ +# Constructor.io Android SDK - Consumer ProGuard Rules +# These rules are bundled with the AAR and applied automatically to consuming apps + +####--------Moshi---------#### +# Keep Moshi annotations so @FromJson/@ToJson reflective adapter discovery works +-keepclassmembers class * { + @com.squareup.moshi.FromJson ; + @com.squareup.moshi.ToJson ; +} +-keep @com.squareup.moshi.JsonQualifier interface * + +# Keep Kotlin metadata for Moshi reflection +-keepclassmembers class kotlin.Metadata { + public ; +} + +####-----Constructor.io SDK-----#### +# Keep SDK model classes (serialization via Moshi) +-keep class io.constructor.data.model.** { *; } + +# Keep custom Moshi adapters +-keep class io.constructor.data.model.dataadapter.** { *; } diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro index 523bedc1..6f300e96 100755 --- a/library/proguard-rules.pro +++ b/library/proguard-rules.pro @@ -20,7 +20,7 @@ } ####-----Model Classes---#### --keep class constructor.io.data.model.** { *; } +-keep class io.constructor.data.model.** { *; } ####-----Sample Classes---#### --keep class constructor.io.sample.** { *; } +-keep class io.constructor.sample.** { *; }