2016-05-27 12 views
6

Ich habe ein Skript, das erstellt und signiert eine Keystore-Datei für eine Android-App.Create Keystore-Datei mit einem Befehl

Es arbeitet völlig in Ordnung, aber ich würde es eher ohne menschliches Zutun

laufen haben

was muss ich den Schlüsselspeicher erstellen:

keytool -genkey -v -keystore my-release-key.keystore 
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000 

Dies fordert mich dann manuell die folgenden Werte eingeben die Verwendung von Terminal: Keystore-Passwort, vollständiger Name, Organisationseinheit, Name der Organisation, Stadt, Bundesland, County-Code, Schlüssel-Passwort.

was ich habe die App anmelden:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my-release-key.keystore my_application.apk alias_name 

Dies fordert dann mich Passwort für Schlüsselspeicher einzugeben.

Gibt es trotzdem ich kann diese Werte als Parameter übergeben, so dass das vollständige Skript ohne weitere Interaktion benötigt wird?

PS: Ich benutze Ubuntu 14.04 LTS.

Dank für Ihre Zeit :)

+2

Bedenken Sie, dass, wenn Sie Passwörter usw. als Parameter eingeben, können sie in Ihrem Verlauf gespeichert werden/logs – fractalwrench

+0

@fractalwrench Vielen Dank für das zu meiner Aufmerksamkeit, ich muss eine Arbeit dafür finden. – PeterG

Antwort

16

Sie können so etwas tun, um die Schlüsselspeicher zu generieren:

keytool -genkey -alias replserver \ 
    -keyalg RSA -keystore keystore.jks \ 
    -dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US" \ 
    -storepass password -keypass password 

Hier ist eine gute Referenz: https://pubs.vmware.com/continuent/tungsten-replicator-3.0/deployment-ssl-stores.html. Und für den Jarsigner gibt es den Parameter "storepass" für das Keystore-Passwort. Und wenn Sie beide in ein Skript schreiben, sollten Sie gut sein.

+1

Fügen Sie '-deststoretypkcs12' hinzu, um den Keystore im jetzt empfohlenen Industriestandard' PKCS12' zu erstellen. Eine weitere gute Option ist 'keykeys 4096' –