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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow