我正试图按照this指南登录apk。
我在C:\ Users \ Family \ workspace \中创建了一个keytools文件夹,在新创建的keytools文件夹中创建了一个keys文件夹。所以现在我有C:\ Users \ Family \ workspace \ keytools和C:\ Users \ Family \ workspace \ keytools \ keys文件夹。
我将debug.keystore复制到keys文件夹中,并将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文件夹中。
在cmd.exe中,我位于C:\ Users \ Family \ workspace \ keytools并尝试运行:jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar sampleapp_signed.apk sampleapp.apk anddev.keystore
。它给了我这个错误:
我也尝试过:
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在进程结束时要求的第二次传递)时,我收到此错误: jarsigner错误:java.lang.RuntimeException:keystore load:密钥库被篡改,或者密码不正确。(但是,我很确定这是正确的错误,导致传递不是这个,但是123456)。
我很确定我越来越近了,证书链错误就是问题所在。对?我错过了一步还是什么?
另一件事:在命令行中,当keytool要求输入任何密码时,光标没有移动。我写了密码,但我没有看到任何数字或星星,或光标移动。然后它要求重新输入密码,同样的事情发生了。我想这没关系,并且是命令行的一个特性,我只是写这个来确定。
修改
在Hades和Saasha的帮助下,签署apk非常容易。对于任何感兴趣的人都是我的步骤:
为此,我在C:\ Users \ Family \ workspace中创建了一个MyKeys文件夹。在该过程之后,sample.keystore和samplesigned.apk出现在该文件夹中。
答案 0 :(得分:3)
不要经历所有麻烦。
你正在使用eclipse吗?如果您参考本指南。http://developer.android.com/guide/publishing/app-signing.html
向下滚动到此标题,
“使用Eclipse ADT编译和签名”
它还有一个密钥库向导。
答案 1 :(得分:3)
喂
如果您使用Eclipse,可以尝试:
如果您将Eclipse与ADT插件一起使用,则可以使用“导出向导”导出已签名的.apk(如果需要,甚至可以创建新的密钥库)。导出向导为您执行与Keytool和Jarsigner的所有交互,这允许您使用GUI对包进行签名,而不是执行手动过程来编译,签名和对齐,如上所述。一旦向导编译并签署了包,它也将使用zipalign进行包对齐。由于“导出向导”同时使用Keytool和Jarsigner,因此应确保可以在计算机上访问它们,如上面“签名的基本设置”中所述。
在Eclipse中创建已签名且对齐的.apk: