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.