Recherche…


Configurez le build.gradle avec la configuration de signature

Vous pouvez définir la configuration de signature pour signer le fichier build.gradle dans le fichier build.gradle .

Vous pouvez définir:

  • storeFile : le fichier de storeFile
  • storePassword : le mot de passe du storePassword
  • keyAlias : un nom d'alias de clé
  • keyPassword : un mot de passe alias de clé

Vous devez définir le bloc signingConfigs pour créer une configuration de signature:

android {
    signingConfigs {

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

Vous pouvez ensuite l' assigner à un ou plusieurs types de construction.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Définir la configuration de signature dans un fichier externe

Vous pouvez définir la configuration de signature dans un fichier externe en tant que signing.properties dans le répertoire racine de votre projet.

Par exemple, vous pouvez définir ces clés (vous pouvez utiliser vos noms préférés):

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

Ensuite, dans votre fichier build.gradle:

android {

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

Ensuite, vous pouvez introduire des vérifications pour éviter les problèmes de graduation dans le processus de génération.

//------------------------------------------------------------------------------
// 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
}

Définir les variables d'environnement du paramètre de configuration de signature

Vous pouvez stocker les variables d'environnement du paramètre d'informations de signature.
Ces valeurs sont accessibles avec System.getenv("<VAR-NAME>")

Dans votre build.gradle vous pouvez définir:

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

Définir la configuration de signature dans un fichier distinct

La manière la plus simple et la plus propre d’ajouter une configuration externe consiste à utiliser un fichier Gradle distinct.

build.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'
]

Le fichier keystore.gradle peut exister n'importe où dans votre système de fichiers, vous pouvez spécifier son emplacement dans le champ Apply apply from: '' en haut de votre fichier de graduation ou à la fin du fichier build.gradle du projet principal.

En règle générale, c'est une bonne idée d'ignorer ce fichier à partir du système de contrôle de version tel que git s'il est situé dans votre dépôt.

Il est également judicieux de fournir un exemple de keystore.gradle.sample que les développeurs entrant dans le projet renommeraient et rempliraient leur machine de développement. Ce fichier serait toujours contenu dans le référentiel au bon endroit.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow