Certificate chain nicht gefunden, aber keystore enthält den privaten Schlüssel
Ich versuche zu unterzeichnen meine apk, so kann ich release ein update für meine app mit diesem Befehl: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myrelease-key.keystore CordovaAppreleaseunsigned.apk alias_name
aber immer diese Fehlermeldung:
jarsigner: Certificate chain not found for: ¡sigalg. ¡sigalg must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Ive gerade umgezogen auf einen neuen computer, so kopierte ich meine .keystore-Datei zu. Wenn ich keytool -list -v
es scheint, wie es enthält den privaten Schlüssel, so dass ich nicht verstehen was falsch.. Ist der öffentliche Schlüssel fehlt?
- Natürlich werden Sie nicht geben Sie den Befehl korrekt in den ersten Platz. Warum sonst würde
isigalg.
behandelt werden als alias-Namen? - Siehe meine neue Antwort, könnte das der Fall sein?
- Wo das minus-Zeichen ging, ist irrelevant. Die Fakten sind, dass die Antwort, die Sie bekam angegeben ein problem mit der Kommandozeile; dass Sie fehlen, was du gepostet hast; und dass Sie erforderlich sind, wie dies in @Omikron Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offensichtlich war es ein encoding-Problem. Der Befehl enthaltenen Zeichen, die sah genauso aus, wie ein minus-Zeichen (ASCII-code 0x2D), aber eigentlich waren Sie eine der vielen Bindestrich oder Trennstrich (http://en.wikipedia.org/wiki/Dash).
Wegen der falschen Zeichen-code des ersten Parameters "
-verbose
" anerkannt jarsigner nicht als eine option, aber wie der name der jar-Datei und "-sigalg
" war anerkannt als alias:Dies erklärt, warum der alias in der Fehlermeldung war "
¡sigalg
" und nicht die eigentliche alias von dem Befehl und enthielt ein umgekehrtes Ausrufezeichen am Anfang (das "-" in einem anderen Zeichensatz).