Gradle Android Studio die Unterzeichnung mit einer properties-Datei
Ich versuche zu Unterschreiben, meine app mit dem gradle-build-file. Wenn ich den plain signingConfigs es funktioniert (signingConfigs.release)! Aber Wenn ich versuche zu Lesen, um die Eigenschaften der Eigenschaften-Datei nicht funktionieren. (signingConfigs.config)
Properties props = new Properties();
props.load(new FileInputStream(file(rootProject.file("signing.properties"))))
android {
signingConfigs {
config {
storeFile file(props["storeFile"])
storePassword props["storePassword"]
keyAlias props["keyAlias"]
keyPassword props["KeyPassword"]
}
release {
storeFile file("..\\xyz.jks")
storePassword "****"
keyAlias "****"
keyPassword "****"
}
}
.
.
.
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-SNAPSHOT'
}
}
Eigenschaften Datei:
storeFile=xyz.jks
storePassword=xyz
keyAlias=xyz
keyPassword=xyz
Wenn ich das Projekt ausführen, android studios zeigen ein Dialogfeld, das sagt:
xyz.apk nicht signiert ist. Bitte konfigurieren Sie die Signierung von Informationen für
die ausgewählten Geschmack mit dem Projekt-Struktur-dialog.
Die property-Datei wird korrekt gelesen, weil ich mich einloggen kann einige Eigenschaften aus der Datei werfen, die Konsole.
Einige meiner system-details:
Android Studio 0.8.6
Windows 8.1 x64
gradle 1.12
Hoffe jemand kann mir helfen. Wenn Sie mehr details wissen wollen, dann Fragen Sie mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was ich Tue, und es funktioniert für mich:
Mein lokal.Eigenschaften-Datei enthält einen Pfad zu einer "keystore.Eigenschaften" der Datei. Enthält meine info über den keystore:
Vielleicht das laden von zwei Propreties Datei ist überflüssig, aber es funktioniert für mich.
Cannot resolve symbol 'Properties'
Ist, dass erwartet? Auch die Behauptung:assert localProps['keystore.props.file'];
scheitert!local.properties
- Datei fehlt diekeystore.props.file=../keystore.properties
Linie. Und der Festsetzung und Aktualisierung von meinem Android Studio gradle-plugin auf die neueste version behoben, die Auflösung vonProperties
Hier ist die komplette Schritt-für-Schritt, den ich nahm, um die Verwendung einer properties-Datei zu bewegen, meine beiden keys aus der gradle.build-Datei in eine Datei, die nicht alle builds-oder repository-commits.
1) Erstellen Sie ein gradle.Eigenschaften (wenn Sie nicht bereits eine haben).
Den Speicherort dieser Datei hängt von Ihrem Betriebssystem:
2) Fügen Sie einen Eintrag auf
yourprojectname.properties
Datei.(Beispiel für Windows)
3) Erstellen
yourprojectname.properties
- Datei in den Speicherort, den Sie in Schritt 2 angegeben, mit folgenden Informationen:4) Ändern Sie Ihre
gradle.build
Datei, zeigen Sie aufyourprojectname.properties
- Datei für die Variablen verwenden.5) Genießen! Jetzt alle Ihre keys werden außerhalb der root des Verzeichnisses und doch haben Sie immer noch die Freuden der Automatisierung für jeden build.
Wenn Sie einen Fehler in den gradle.build-Datei über die "Requisiten" - variable es ist, weil Sie nicht ausführen "android {}" - block in der ersten
if
Zustand, in dem dieprops
variable zugewiesen bekommt, so bewegen Sie einfach die gesamte android - { ... } - Abschnitt in den Zustand, in dem die Requisiten variable zugewiesen wird, dann versuchen Sie es erneut.Ich lötete diese Schritte zusammen aus den gefundenen Informationen hier und hier.
Ich den Fehler gefunden!!!
Das problem war die groß-und Kleinschreibung! Ich Schreibe
aber die Datei enthält nur
Warum gradle dont tell me?
Alternative zu jonglieren Variablen zu zählen/gelten ein gradle-Datei mit der Unterzeichnung configs.
So, in deinem build.gradle
In Ihr .gradle-Verzeichnis (je nach OS, wo es ist) fügen Sie ein gradle.properties-Datei, oder wenn vorhanden, fügen Sie die folgende Zeile
In der Datei gezeigt, durch den oben genannten Eintrag, den Sie umfassen die Unterzeichnung configs, wie Sie in den bauen.gradle-Datei
Ja, die zusätzliche android-Umhüllung hat, dort zu sein. Der Vorteil ist, dass die oben ist eine regelmäßige gradle-Datei, so können Sie alles tun, die Magie, die Sie da rein wollen.
Hinzufügen mehr signingConfigs als benötigt, verwenden Sie die übliche Weise, z.B.