android-gradle
Signiereinstellungen konfigurieren
Suche…
Konfigurieren Sie das build.gradle mit der Signierkonfiguration
Sie können die Signierungskonfiguration definieren, um die apk in der Datei build.gradle zu signieren.
Sie können definieren:
-
storeFile: die Keystore-Datei -
storePassword: das Schlüsselspeicherkennwort -
keyAlias: ein Aliasname -
keyPassword: Ein Schlüsselalias-Kennwort
Sie müssen den signingConfigs Block definieren , um eine signingConfigs zu erstellen:
android {
signingConfigs {
myConfig {
storeFile file("myFile.keystore")
storePassword "myPasswork"
keyAlias "aKeyAlias"
keyPassword "myAliasPassword"
}
}
//....
}
Dann können Sie es einem oder mehreren Build-Typen zuordnen .
android {
buildTypes {
release {
signingConfig signingConfigs.myConfig
}
}
}
Definieren Sie die Signierkonfiguration in einer externen Datei
Sie können die Signaturkonfiguration in einer externen Datei als signing.properties im Stammverzeichnis Ihres Projekts definieren.
Beispielsweise können Sie diese Schlüssel definieren (Sie können Ihre bevorzugten Namen verwenden):
STORE_FILE=myStoreFileLocation
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword
Dann in Ihrer build.gradle -Datei:
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Anschließend können Sie einige Überprüfungen durchführen, um gradle Probleme beim Build-Vorgang zu vermeiden.
//------------------------------------------------------------------------------
// 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
}
Definieren Sie die Umgebungsvariablen für die Signierkonfigurationseinstellung
Sie können die Umgebungsvariablen für die Signaturinformationen speichern.
Auf diese Werte kann mit System.getenv("<VAR-NAME>") zugegriffen werden.
In Ihrem build.gradle können Sie build.gradle definieren:
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
Definieren Sie die Signierungskonfiguration in einer separaten Abstufungsdatei
Die einfachste und sauberste Methode zum Hinzufügen einer externen Konfiguration besteht in einer separaten Gradle-Datei
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'
]
Die Datei keystore.gradle kann an einer beliebigen Stelle in Ihrem Dateisystem vorhanden sein. Sie können den Speicherort innerhalb von apply from: '' angeben apply from: '' oben in Ihrer Gradle-Datei oder am Ende Ihrer Hauptdatei build.gradle.
Normalerweise empfiehlt es sich, diese Datei vom Versionskontrollsystem (z. B. git) zu ignorieren, wenn sie sich in Ihrem Repo befindet.
Es ist auch eine gute Idee, ein Beispiel für " keystore.gradle.sample bereitzustellen, das Entwickler, die das Projekt betreten, auf ihrem Entwicklungscomputer umbenennen und keystore.gradle.sample möchten. Diese Datei würde sich immer am richtigen Ort im Repo befinden.