Cómo usar Kotlin con Proguard

Estoy tratando de agregar Kotlin a mi proyecto y necesito usar Proguard. ¿Qué reglas debo agregar para proteger a Kotlin?

Gracias

    No necesitas hacer nada especial. Kotlin trabaja con ProGuard recién sacado de la caja. Pero puede enfrentar algunos errores extraños al procesar su aplicación con ProGuard. En este caso solo agrega

    -dontwarn kotlin.** 

    Además, si desea deshacerse de los controles nulos en time de ejecución, puede usar la siguiente regla:

     -assulessideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 

    En Kotlin 1.0.2 EAP Proguard se quita cuando las asignaciones para enumeraciones, por lo que tengo que mantenerlos explícitamente, por lo que

     -keepclassmembers class **$WhenMappings { <fields>; } 

    es suficiente para la ofuscación correcta. Aunque si desea algunas mejoras de performance, también puede agregar

     -assulessideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 
     -keep class kotlin.** { *; } -keep class kotlin.Metadata { *; } -dontwarn kotlin.** -keepclassmembers class **$WhenMappings { <fields>; } -keepclassmembers class kotlin.Metadata { public <methods>; } -assulessideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 

    build gradle:

     apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 

    https://kotlinlang.org/docs/tutorials/kotlin-android.html

    verificar en su guarida ¿incluyó

    implementación "org.jetbrains.kotlin: kotlin-stdlib-jre7: $ kotlin_version"