Buscar..


Configurar el build.gradle con la configuración de firma

Puede definir la configuración de firma para firmar el apk en el archivo build.gradle .

Puedes definir:

  • storeFile : el archivo de almacén de claves
  • storePassword : la contraseña del almacén de claves
  • keyAlias : un nombre de alias de clave
  • keyPassword : una contraseña de alias de clave

Usted tiene que definir las signingConfigs bloquean para crear una configuración de firma:

android {
    signingConfigs {

        myConfig {
            storeFile file("myFile.keystore")
            storePassword "myPasswork"
            keyAlias "aKeyAlias"
            keyPassword "myAliasPassword"
        }
    }
    //....
}

Luego puedes asignarlo a uno o más tipos de compilación.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Definir la configuración de firma en un archivo externo.

Puede definir la configuración de firma en un archivo externo como una signing.properties en el directorio raíz de su proyecto.

Por ejemplo, puede definir estas teclas (puede usar sus nombres favoritos):

STORE_FILE=myStoreFileLocation    
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword

Luego en tu archivo build.gradle:

android {

    signingConfigs {
        release
    }
    
     buildTypes {
        release {
            signingConfig signingConfigs.release
        }
     }
}

Luego puede introducir algunos controles para evitar problemas de gradle en el proceso de construcción.

//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {

    if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {

        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        android.buildTypes.release.signingConfig = null
    }
} else {
    android.buildTypes.release.signingConfig = null
}

Definir las variables de entorno de configuración de firma.

Puede almacenar las variables de entorno de configuración de información de firma.
Se puede acceder a estos valores con System.getenv("<VAR-NAME>")

En tu build.gradle puedes definir:

signingConfigs {
    release {
        storeFile file(System.getenv("KEYSTORE"))
        storePassword System.getenv("KEYSTORE_PASSWORD")
        keyAlias System.getenv("KEY_ALIAS")
        keyPassword System.getenv("KEY_PASSWORD")
    }
}

Defina la configuración de firma en un archivo gradle separado

La forma más sencilla y limpia de agregar una configuración externa es a través de un archivo Gradle separado

construir.gradle

apply from: './keystore.gradle'
android{
    signingConfigs {
        release {
            storeFile file(keystore.storeFile)
            storePassword keystore.storePassword
            keyAlias keystore.keyAlias
            keyPassword keystore.keyPassword
        }
    }
}

keystore.gradle

ext.keystore = [
    storeFile    : "/path/to/your/file",
    storePassword: 'password of the store',
    keyAlias     : 'alias_of_the_key',
    keyPassword  : 'password_of_the_key'
]

El archivo keystore.gradle puede existir en cualquier parte de su sistema de archivos, puede especificar su ubicación dentro de la apply from: '' en la parte superior de su archivo de gradle o al final de su proyecto principal, el archivo build.gradle.

Normalmente, es una buena idea ignorar este archivo del sistema de control de versiones como git si está ubicado dentro de su repositorio.

También es una buena idea proporcionar un ejemplo de keystore.gradle.sample que los desarrolladores que ingresan al proyecto cambiarían de nombre y rellenarían en su máquina de desarrollo. Este archivo siempre estaría contenido dentro del repositorio en la ubicación correcta.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow