Kotlin AAR library w / proguard: ¿cómo mantener los methods de extensión?

Estoy escribiendo un nuevo module de biblioteca de Kotlin para agregar classs y methods de extensión comúnmente utilizados. Estoy comstackndo cada file de extensiones (por ejemplo, BitmapExtensions.kt) en un solo file llamado 'Extensiones' usando JvmMultifileClass :

 @file:JvmName("Extensions") @file:JvmMultifileClass fun Bitmap.crop(cropRect: Rect) = ... 

Como parte de la política de propiedad intelectual de nuestra compañía, necesito ofuscar la biblioteca a través de proguard antes de que llegue a un proyecto de consumo. Por lo tanto, necesito una regla de protección para mantener estos methods de extensión para que no se descarten.

A primera vista, lo que sigue parece funcionar, inspeccionando las classs generadas de AAR. Jar muestra que los methods de extensión todavía existen y sus componentes internos han sido ofuscados. Pero cuando realmente compilo en un proyecto de consumo, obtengo references sin resolver a cualquier método de extensión al que haga reference.

 -keepclassmembernames class mycompany.kotlin.util.Extensions { <methods>; } 

Cuando deshabilito la minificación, el proyecto se crea correctamente.

¿Cómo puedo ofuscar mi biblioteca y conservar mis extensiones de kotlin?

editar: parece que usar keep en todo el package, e incluso especificar -dontshrink no es suficiente. Los methods simplemente no pueden ser referencedos en la aplicación del consumidor.

edit2: Creo que he networkingucido esto al file .kotlin_module en / META-INF / eliminado cuando minifyEnabled=true . Esta parece ser la ÚNICA diferencia entre mis classs.jar minificadas y no minificadas. Algo está eliminando este file … o impidiendo su generación.