¿Cómo saltarse los models proguard utilizados por retrofit2 que está en el package base?

Estoy escribiendo una aplicación con Kotlin y Retrotif 2. Al usar Proguard, sigo las reglas aquí

https://github.com/krschultz/androidproguard-snippets/blob/master/libraries/proguard-square-retrofit2.pro

Además, también necesito proteger mis models, como se indica en https://stackoverflow.com/a/41136007/3286489

Funciona bien si tengo mis models en un package, y tengo -keep class com.elyeproj.wikisearchcount.model.** { *; } -keep class com.elyeproj.wikisearchcount.model.** { *; }

 package com.elyeproj.wikisearchcount.model object Model { data class Result(val query: Query) data class Query(val searchinfo: SearchInfo) data class SearchInfo(val totalhits: Int) } 

Sin embargo, si guardo mis Modelos en el package base como el siguiente código, pero no deseo conservar el package completo, es decir, -keep class com.elyeproj.wikisearchcount.** { *; } -keep class com.elyeproj.wikisearchcount.** { *; } , ya que esto derrota el propósito de proguard

 package com.elyeproj.wikisearchcount object Model { data class Result(val query: Query) data class Query(val searchinfo: SearchInfo) data class SearchInfo(val totalhits: Int) } 

¿Cómo podría mantener mis classs model?

Intenté -keep class com.elyeproj.wikisearchcount.Model.** { *; } -keep class com.elyeproj.wikisearchcount.Model.** { *; } , pero no funciona.

¿Por qué no usas la anotación @SerializedName y luego no tienes que preocuparte por la ofuscación? Puede usar el siguiente código:

 object Model { data class Result(@SerializedName("query") val query: Query) data class Query(@SerializedName("searchInfo") val searchinfo: SearchInfo) data class SearchInfo(@SerializedName("totalhits") val totalhits: Int) } 

Después de explorar más, encontré la respuesta

 -keep class com.elyeproj.wikisearchcount.Model** { *; } 
  • Android 2 Retrofit llamada sincrónica
  • Android Retrofit Get Query codificado
  • Retrofit2 return null Unidad en kotlin para 204 Sin respuesta de contenido
  • Actualice 2 POST XML y obtenga la respuesta JSON de la API. con Kotlin
  • Confundido sobre la asignación de la variable RxJava
  • Cómo volver a intentar el retroceso exponencial en corotines de kotlin
  • Readaptación con kotlin, incapaz de crear @Body
  • Implementación de readaptación en Kotlin - Parámetro por defecto del método
  • formatting @Query parameter - Retrofit 2
  • Retrofit2 Añadir cadena adicional al object Body
  • Adaptador personalizado de Moshi con RxAndroid & Retrofit & Kotlin