Die Antwort von @Destil ist gut, wenn Sie die gleiche Konfiguration in allen Projekten wiederverwenden können. Alternativ wird Android Studio mit einer local.properties
Datei geliefert, die stattdessen verwendet werden kann, aber sie soll vom IDE generiert sein und ich kann keinen Weg finden, sie von innerhalb von Android Studio zu erweitern.
Dies ist eine Variation von @jonbo's Antwort. Diese Antwort ermöglicht projektbezogene Einstellungen, erfordert jedoch einen gewissen Entwickleraufwand. Insbesondere ist erheblicher Boilerplate-Code erforderlich, um die signingConfigs
-Definition in eine separate Datei zu verschieben - insbesondere wenn Sie dies für mehrere Projekte tun müssen, was ein Hauptgrund für die Wahl dieser Lösung gegenüber Destil's ist. Dies kann etwas erleichtert werden, indem Sie auch die Zeile
apply plugin: 'com.android.application'
in die Anmeldeinformationsdatei aufnehmen, da dies die IDE-Vervollständigung ermöglicht.
Die meisten Lösungen hier erlauben nicht das Erstellen des Projekts im Debug-Modus - was die Debug-Signierung automatisch behandelt - ohne eine syntaktisch, wenn auch nicht semantisch, gültige signingConfigs
-Definition bereitzustellen. Wenn Sie keine Release-Builds von einem bestimmten Rechner erstellen müssen, kann dieser zusätzliche Schritt als unnötiges Hindernis angesehen werden. Andererseits kann er gegen ignorante oder faule Kollegen hilfreich sein, die Debug-Builds in Produktion ausführen.
Mit dieser Lösung können Debug-Builds ohne sich um Anmeldeinformationen zu kümmern, erstellt werden, aber es sind gültige Anmeldeinformationen erforderlich, um Release-Builds zu erstellen, und es erfordert sehr wenig Boilerplate-Code. Allerdings könnte es andere dazu verleiten, Dummy-Werte durch echte Anmeldeinformationen zu ersetzen und es gibt keine Möglichkeit, dem entgegenzuwirken.
// app/build.gradle
// Definieren Sie diese Struktur in signing.gradle, um Release-Builds zu aktivieren.
ext.signing = [
storeFilePath : 'Pfad/zum/Keystore',
storePassword : 'Keystore-Passwort',
keyAlias : 'Schlüssel-Alias',
keyPassword : 'Schlüssel-Passwort',
]
if (file('signing.gradle').exists()) {
apply from: 'signing.gradle'
}
android {
...
signingConfigs {
release {
storeFile file(project.signing.storeFilePath)
storePassword project.signing.storePassword
keyAlias project.signing.keyAlias
keyPassword project.signing.keyPassword
}
}
buildTypes {
debug { ... }
release {
signingConfig signingConfigs.release
...
}
}
}
Dies erstellt eine Dummy-Eigenschaft, die ausschließlich dazu dient, eine syntaktisch gültige Build-Datei zu erstellen. Die den Eigenschaften von ext.signing
zugewiesenen Werte sind für Debug-Builds irrelevant. Um Release-Builds zu aktivieren, kopieren Sie ext.signing
in die Datei signing.gradle
und ersetzen Sie die Dummy-Werte durch gültige Anmeldeinformationen.
// signing.gradle
ext.signing = [
storeFilePath : 'echter/Keystore',
storePassword : 'echtes Keystore-Passwort',
keyAlias : 'echter Schlüssel-Alias',
keyPassword : 'echtes Schlüssel-Passwort',
]
Natürlich sollte die Datei signing.gradle
vom VCS ignoriert werden.