我正在尝试通过以下方式签署 apkthis http://www.anddev.org/advanced-tutorials-f21/signing-your-apk-application-for-release-keytool-jarsigner-t3069.html guide.
我在C:\Users\Family\workspace\ 中创建了一个keytools 文件夹,并在新创建的keytools 文件夹中创建了一个keys 文件夹。所以现在我有 C:\Users\Family\workspace\keytools 和 C:\Users\Family\workspace\keytools\keys 文件夹。
我将 debug.keystore 复制到密钥文件夹中,并将 keytool.exe 和 jli.dll 复制到 keytools 文件夹中。
我运行 cmd.exe 并导航到 C:\Users\Family\workspace\keytools 并运行keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
anddev.keystore 文件在密钥文件夹中创建。
我将要签名的 apk 复制到 keytools 文件夹中。我还将 jarsigner.exe 复制到 keytools 文件夹中。
-
In cmd.exe I am at C:\Users\Family\workspace\keytools and trying to run: jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar sampleapp_signed.apk sampleapp.apk anddev.keystore
. It gives me this error:
I also tried to run:
jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar Sampleapp_signed.apk Sampleapp.apk C:\Users\Family\workspace\keytools\keys\anddev.keystore
我也尝试过运行:
jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar C:\Users\Family\workspace\keytools\sampleapp_signed.apk C:\Users\Family\workspace\keytools\sampleapp.apk C:\Users\Family\workspace\keytools\keys\anddev.keystore
当我导航到 c:\program files\java\jdk1.6.0_23\bin 并运行该代码时,它会要求输入密钥库密码,当我写入密钥库通行证(123456)时,它会给我一个错误:
jarsigner:找不到以下证书链:c:\users\family\workspace\keytools\keys\anddev.keystore。 c:\users\family\workspace\keytools\keys\anddev.keystore 必须引用包含私钥和相应密钥证书链的有效密钥库密钥条目。
当我编写 anddev.keystore pass (=asdfgh,keytool 在进程结束时要求的第二个pass)时,我收到此错误:jarsigner 错误:java.lang.RuntimeException:密钥库加载:密钥库被篡改,或密码不正确。(但是,我很确定这是正确的错误,因为通行证不是这个,而是 123456)。
我很确定我已经接近了,证书链错误就是问题所在。正确的?我错过了一个步骤还是什么?
另一件事:在命令行中,当 keytool 要求输入任何密码时,光标没有移动。我写了密码,但没有看到任何数字或星星,也没有看到光标移动。然后它要求重新输入密码,同样的情况发生。我想这没问题,而且是命令行的一个功能,我写这个只是为了确定一下。
Edit:
Based on the help of Hades and Saasha, it was extremely easy to sign the apk. For anyone interested here are my steps:
For this i created a MyKeys folder into C:\Users\Family\workspace. After the process the sample.keystore and the samplesigned.apk appeared in that folder.