3

我正在尝试按照指南签署 apk。

  1. 我在 C:\Users\Family\workspace\ 中创建了一个 keytools 文件夹,并在新创建的 keytools 文件夹中创建了一个 keys 文件夹。所以现在我有 C:\Users\Family\workspace\keytools 和 C:\Users\Family\workspace\keytools\keys 文件夹。

  2. 我将 debug.keystore 复制到 keys 文件夹中,并将 keytool.exe 和 jli.dll 复制到 keytools 文件夹中。

  3. 我运行 cmd.exe 并导航到 C:\Users\Family\workspace\keytools 并运行keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore

  4. anddev.keystore 文件在 keys 文件夹中创建。

  5. 我将要登录的 apk 复制到 keytools 文件夹中。我还将 jarsigner.exe 复制到 keytools 文件夹中。

  6. 在 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 必须引用包含私钥和相应密钥证书链的有效 Keystore 密钥条目。

当我写 anddev.keystore pass (= asdfgh,keytool 在进程结束时要求的第二个 pass)我得到这个错误: jarsigner error: java.lang.RuntimeException: keystore load: Keystore was tampered with, or password was不正确。(但是,我很确定这是正确的错误,因为通行证不是这个,而是 123456)。

我很确定我越来越近了,证书链错误就是问题所在。对?我错过了一步还是什么?

另一件事:在命令行中,当 keytool 要求输入任何密码时,光标没有移动。我写了密码,但没有看到任何数字或星号,也没有看到光标移动。然后它要求重新输入密码,同样的事情发生了。我想这没问题,并且是命令行的一个功能,我只是为了确定而写这个。

编辑: 在 Hades 和 Saasha 的帮助下,签署 apk 非常容易。对于任何对此感兴趣的人,我的步骤是:为此,我在 C:\Users\Family\workspace 中创建了一个 MyKeys 文件夹。在该过程之后,sample.keystore 和 samplesigned.apk 出现在该文件夹中。在此处输入图像描述

4

2 回答 2

3

不要经历所有的麻烦。

你在用日食吗?如果你是参考这个指南。

http://developer.android.com/guide/publishing/app-signing.html

向下滚动到这个标题,

“使用 Eclipse ADT 编译和签名”

它也有一个密钥库向导。

于 2011-06-01T09:37:52.103 回答
3

你好

如果您使用 Eclipse,您可以尝试:

使用 Eclipse ADT 编译和签名

如果您使用带有 ADT 插件的 Eclipse,则可以使用导出向导导出签名的 .apk(如果需要,甚至可以创建新的密钥库)。导出向导为您执行与 Keytool 和 Jarsigner 的所有交互,这允许您使用 GUI 对包进行签名,而不是执行手动过程来编译、签名和对齐,如上所述。一旦向导编译并签署了您的包,它还将使用 zipalign 执行包对齐。由于导出向导同时使用 Keytool 和 Jarsigner,因此您应该确保它们可以在您的计算机上访问,如上文“签名的基本设置”中所述。

要在 Eclipse 中创建签名并对齐的 .apk:

  1. 在 Package Explorer 中选择项目,然后选择 File > Export。
  2. 打开 Android 文件夹,选择导出 Android 应用程序,然后单击下一步。导出 Android 应用程序向导现在启动,它将指导您完成对应用程序进行签名的过程,包括选择用于签署 .apk 的私钥(或创建新的密钥库和私钥)的步骤。
  3. 完成导出向导,您的应用程序将被编译、签名、对齐并准备好分发。
于 2011-06-01T09:42:01.080 回答