android-gradle
Configura le impostazioni di firma
Ricerca…
Configura build.gradle con la configurazione della firma
È possibile definire la configurazione della firma per firmare l'apk nel file build.gradle
.
Puoi definire:
-
storeFile
: il file keystore -
storePassword
: la password del keystore -
keyAlias
: un nome alias chiave -
keyPassword
: una password alias chiave
Devi definire il blocco signingConfigs
per creare una configurazione di firma:
android {
signingConfigs {
myConfig {
storeFile file("myFile.keystore")
storePassword "myPasswork"
keyAlias "aKeyAlias"
keyPassword "myAliasPassword"
}
}
//....
}
Quindi puoi assegnarlo a uno o più tipi di build.
android {
buildTypes {
release {
signingConfig signingConfigs.myConfig
}
}
}
Definire la configurazione della firma in un file esterno
È possibile definire la configurazione della firma in un file esterno come signing.properties
nella directory root del progetto.
Ad esempio puoi definire questi tasti (puoi usare i tuoi nomi preferiti):
STORE_FILE=myStoreFileLocation
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword
Quindi nel file build.gradle:
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Quindi puoi introdurre alcuni controlli per evitare problemi di gradle nel processo di compilazione.
//------------------------------------------------------------------------------
// 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
}
Definire le variabili di ambiente delle impostazioni di configurazione della firma
È possibile memorizzare le variabili di ambiente delle impostazioni delle informazioni di firma.
È possibile accedere a questi valori con System.getenv("<VAR-NAME>")
Nel tuo build.gradle
puoi definire:
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
Definire la configurazione della firma in un file gradle separato
Il modo più semplice e pulito per aggiungere una configurazione esterna è attraverso un file Gradle separato
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'
]
Il file keystore.gradle può esistere ovunque nel tuo file system, puoi specificare la sua posizione all'interno apply from: ''
nella parte superiore del tuo file gradle o alla fine del file build.gradle del progetto principale.
In genere è una buona idea ignorare questo file dal sistema di controllo della versione come git se si trova all'interno del repository.
È anche una buona idea fornire un esempio keystore.gradle.sample
che gli sviluppatori che accedono al progetto potrebbero rinominare e popolare sul proprio computer di sviluppo. Questo file sarebbe sempre contenuto all'interno del repository nella posizione corretta.