Firmas múltiples Configuraciones para múltiples variantes

¿Cómo puedo configurar diferentes configuraciones de firma para diferentes variantes?

Por ejemplo, actualmente tenemos los tipos de compilación Debug / Beta / Release con 2 sabores, gratuitos y de pago, lo que da como resultado 6 variantes. Para hacerlo un poco más fácil, olvidemos las variantes de depuración y céntrese solo en freeBeta / paidBeta / freeRelease / paidRelease.

Lo que me gustaría es que cada variante use un signo de configuración diferente por separado.

Hasta ahora, las únicas soluciones que pude encontrar es poner el signoConfigs en buildTypes para que todas las variantes Beta tengan el mismo signoConfigs:

buildTypes {
    beta {
        signingConfigs.beta
    }
    release {
        signingConfigs.release
    }
}

Alternativamente, usando los sabores, en cuyo caso todas las variantes gratuitas tendrían la misma firmaConfigs:

productFlavors {
    free {
        signingConfig signingConfigs.free
        applicationId 'com.example.free'
    }
    paid {
        signingConfig signingConfigs.paid
        applicationId 'com.example.paid'
    }
}

¿Hay alguna manera de hacer esto en el producto actual Cierre de sabor? ¿Esto solo se puede solucionar anulando elandroid.applicationVariants.all { variant -> y aplicando manualmente una firmaConfig para cada variante de aplicación basada en algún esquema de nombres o algún otro truco feo?

Yo tambien encontreesta respuesta, pero no parece funcionar en las últimas herramientas de compilación; Al compilar me sale el siguiente error:

FALLO: Falló la compilación con una excepción.

Donde: Construir archivo '/home/dev/projects/app/build.gradle' línea: 61

Qué salió mal: Se produjo un problema al evaluar el proyecto ': aplicación'.

No se pudo encontrar la propiedad 'gratis' en el contenedor ProductFlavor.

Respuestas a la pregunta(1)

Su respuesta a la pregunta