Bis jetzt hatte ich meine APKs mit dem folgende Verfahren wurde Unterzeichnung:apksigner nicht durch ein Passwort zu akzeptieren
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore {keystore-file} {apk-file} {keystore-alias}
aber ich versuche, das neue apksigner-Tool zu verwenden, und ich kann es nicht immer, da es an der Arbeit sagt mir, dass das Passwort ungültig ist. Was unmöglich ist, weil ich es mehrfach gemacht habe, mit dem Jarsigner und nicht mit dem Apsigner. Die Befehle, die ich versucht habe, sind die folgenden:
apksigner sign --ks {keystore-file} {apk-file}
apksigner sign --ks {keystore-file} --ks-key-alias {keystore-alias} {apk-file}
Nun ist die seltsamste Teil kommt, wenn ich einen neuen Schlüsselspeicher erstellt dies zu testen, und mit dieser neuen Schlüssel es funktioniert. Also verstehe ich nicht, was der Unterschied ist. Hier sind die Informationen aus dem Aufruf von "keytool -v -list -keystore {keystore-file}" auf beiden.
Produktion Schlüsselspeicher (I Text in Fall entfernt haben dies gefährlich ist):
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: {keystore-alias}
Creation date: Apr 4, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN={removed-text}, OU={removed-text}, O={removed-text}, L=Unknown, ST=Unknown, C=Unknown
Issuer: CN={removed-text}, OU={removed-text}, O={removed-text}, L=Unknown, ST=Unknown, C=Unknown
Serial number: {removed-text}
Valid from: Mon Apr 04 12:39:50 CEST 2016 until: Fri Aug 21 12:39:50 CEST 2043
Certificate fingerprints:
MD5: {removed-text}
SHA1: {removed-text}
SHA256: {removed-text}
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: {removed-text}
0010: {removed-text} {removed-text} ....
]
]
*******************************************
*******************************************
Neuer Test Schlüsselspeicher:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: app
Creation date: Nov 17, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Foobar, OU=Foobar, O=foobar, L=Unknown, ST=Unknown, C=Unknown
Issuer: CN=Foobar, OU=Foobar, O=foobar, L=Unknown, ST=Unknown, C=Unknown
Serial number: 448c7afc
Valid from: Thu Nov 17 11:40:26 CET 2016 until: Mon Apr 04 12:40:26 CEST 2044
Certificate fingerprints:
MD5: 3E:29:C0:3C:30:B4:DC:E0:A5:94:1D:2E:E9:86:58:CA
SHA1: 3D:09:B4:42:A2:7C:14:C7:3E:54:33:0E:AB:75:2E:F1:19:23:00:FA
SHA256: 7F:E0:51:F1:6A:53:45:56:42:B9:F9:38:92:69:81:7A:DA:71:FF:44:51:15:7F:F9:B4:1C:AA:2B:53:4A:89:72
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: BC 1B E6 C4 6D 25 01 70 CA AC 81 34 81 4B AE 41 ....m%.p...4.K.A
0010: 10 DF D8 13 ....
]
]
*******************************************
*******************************************
Was ist die Fehlermeldung/Ausnahme, die Sie Formular Apsigner bekommen? Auch die Bereitstellung des Passworts für apksigner über --ks-pass pass: und --key-pass pass: in verschiedenen Kombinationen ändern alles? Probieren Sie --ks-pass und no --key-pass und --key-pass und no --ks-pass aus. –
@AlexKlyubin Ok, der Fehler, den ich bekam, war eine einfache "Passwortverifizierung fehlgeschlagen", aber nachdem ich versucht habe, was du gesagt hast, das Passwort in der cmd, bekam ich "Nicht unterstützte Passwortspezifikation für Keystore Passwort".Ich weiß nicht, welches die Spezifikation für Passwörter ist, aber ich änderte das Passwort in eine einfachere Version (ohne Sonderzeichen) und jetzt funktioniert es. Ich verstehe nicht, warum sie das Format ändern würden. Wie auch immer, das löst mein Problem, wenn Sie also den Kommentar zu einer Antwort verschieben wollen, werde ich dies als akzeptiert markieren. Wenn Sie etwas darüber sagen können, warum dies geschieht, wäre das ein gutes Plus: D. Vielen Dank. –
Ich bin froh zu hören, dass Sie einen Workoon gefunden haben. Haben Sie die Sonderzeichen entfernt oder sie durch ASCII-Äquivalente ersetzt (z. B. "a mit Umlaut" wird zu "a")? –