studio productflavors now must generate generar flavors flavor debug configurar belong all android build gradle code-signing

android - productflavors - Configuración de firma de depuración en sabores de productos Gradle



generate apk android studio (3)

Funciona en 2.2.1

buildTypes { release { } debug { signingConfig android.buildTypes.release.signingConfig } }

Tengo un proyecto en el que tengo varios sabores de producto específicos del dispositivo, y cada sabor debe firmarse con una configuración diferente:

productFlavors { nexus7 { signingConfig signingConfigs.nexus7 } nexus4 { signingConfig signingConfigs.nexus4 } }

Esto funciona muy bien cuando se construye una variante de ''lanzamiento''. Sin embargo, cuando se usa una variante de ''depuración'' (por ejemplo, cuando compilo Nexus4Debug), Gradle usa la clave de depuración de Android predeterminada. En mi caso, soy altamente dependiente de que estas compilaciones se firmen correctamente, y mi aplicación es relativamente inútil si se firma con la clave de depuración predeterminada. ¿Alguien sabe si hay una manera de especificar la configuración de firma para cada variante?

Sé que puedo hacerlo por tipo de construcción, a la:

buildTypes { debug { signingConfig signingConfigs.nexus4 } }

pero esto me limita a usar siempre la misma configuración de firma para las compilaciones de depuración de ambos sabores.

PD: entiendo que esto es un poco de un caso de uso de borde aquí. Esto es para un proyecto empresarial donde estamos probando ROMs personalizadas y aplicaciones firmadas por el sistema en varios dispositivos Nexus diferentes.


Intenta agregar esto a tu build.gradle . Especificará qué signingConfig usar para cada flavor cuando se construye el tipo de compilación de debug :

buildTypes { debug { productFlavors.nexus4.signingConfig signingConfigs.nexus4 productFlavors.nexus7.signingConfig signingConfigs.nexus7 } }


Tengo otra solución después de la compilación de Android. 1.1.3

productFlavors { nexus7 { signingConfig signingConfigs.nexus7 } nexus4 { signingConfig signingConfigs.nexus4 } } buildTypes { release { debuggable false zipAlignEnabled true } debug { initWith release debuggable true zipAlignEnabled false } }

Como el tipo de compilación "release" usará la configuración de firma de sabor (ya que no hay especificación), después de debug init con la compilación de lanzamiento, también tendrá la misma configuración de firma.

El tipo de compilación "debug" debe estar iniciado con "release", ya que si no se proporciona la configuración de firma, se usará la clave de firma de depuración predeterminada de Android.

Actualizar

El problema es que android.buildTypes.debug.signingConfig tiene un valor predeterminado mientras que la versión no lo tiene.

La solución puede ser rotura en el futuro.

De todos modos, todavía funciona con el plugin android build 2.3.2.