配置Eclipse以使用签名密钥库

时间:2012-06-04 19:06:59

标签: android keystore

我终于创造了一个' final'我的应用程序的密钥库。由于我的应用程序使用的是谷歌地图,我需要更新所有布局以使用应用程序产生的新API密钥。

现在我完全了解导出已签名的APK以供发布的要求,但之后是什么?我的想法是,对于进一步的开发和测试,如果我可以将Eclipse配置为使用我的最终密钥库而不是调试密钥库,那将是最简单的......但我发现没有办法做到这一点?它只允许我配置一个替代方案'调试密钥,但我想这不一样​​。

如果我在这里完全误解了某些内容,我会感到很困惑。

7 个答案:

答案 0 :(得分:70)

您可以通过转到Preferences - >配置自定义密钥库,以用于Eclipse中的调试版本(单击Run ...时发生的版本)。 Android - >在“自定义调试密钥库”选项中构建并输入文件名。

但是,它必须遵守与传统调试密钥库相同的规则,主要是:

  1. 密钥库密码必须为“android”
  2. 必须包含名为“androiddebugkey”的键
  3. 该密钥的密码必须是“android”
  4. 因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它要求您的生产密钥库看起来像一个调试存储,如果有人得到ahold文件(如果会更容易检查和猜测密码。)

    HTH

答案 1 :(得分:61)

我能够将我的Google Play发布密钥库用作我的自定义调试密钥库,以帮助调试应用内购买功能。毫无疑问,同样适用于调试谷歌地图的东西。

作为Devunwired mentioned,有一些警告。但我的解决方案是:

  1. 将您的发布密钥复制到某处。
  2. 更改the instructions here之后的密钥库密码/密钥密码和密钥别名(同样,遵循Devunwired的建议,使其看起来像调试密钥库)。
  3. 更改Eclipse的首选项> Android>构建>自定义密钥库设置为步骤1中创建的副本的路径。
  4. 完成!

答案 2 :(得分:4)

为了让Eclipse在部署时自动为您签名,您需要设置一个行为类似于调试密钥库的密钥库。这意味着必须有一个' androiddebugkey'密钥和密钥库密码必须是' android'。因此,我建议如下:

  1. 制作密钥库的副本,我将其复制到名为iap.keystore的文件
  2. 在路径上打开包含keytool的终端/命令窗口(对我来说路径为D:\ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe)或在下面的命令中使用keystore的完整路径< / LI>
  3. 将您的密钥库密码更改为&#39; android&#39;:
    • keytool -storepasswd -keystore iap.keystore
    • 按照提示输入旧的密钥库密码
    • 按照提示输入android作为新密码
    • 按照提示确认android作为密码
  4. 将您的密钥重命名为androiddebugkey在下一个命令中使用您当前的密钥名称替换Old_Key_Store_Name
    • keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
    • 按照提示输入您的密钥库密码(现在为andorid
    • 按照提示输入您的Old_Key_Store_Name密码(这是您之前设置的密码密码)
  5. 更改androiddebugkey的密码
    • keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
    • 按照提示输入您的密钥库密码(现在为andorid
    • 按照提示输入您的androiddebugkey密码(这是您之前设置的密码密码)
    • 按照提示输入android作为新密钥密码
    • 按照提示确认android为密码
  6. 您现在拥有一个密钥库(带密钥),Eclipse可以使用它来自动签署构建器。
  7. 加载Eclipse。
  8. 窗口 - &gt;偏好 - &gt; Android - &gt;构建
  9. 关注&#39;自定义调试密钥库&#39;浏览到我们之前创建的iap.keystore文件
  10. 现在,当您启动/调试项目时,它将使用我们刚刚设置的密钥库来签署您的项目。这将允许像IAP这样的东西工作。

    当心:这很方便,但当然如果有人抓住您的iap.keystore,他们就可以使用&#39; android&#39;作为密钥库/密钥密码。希望这显然来自上面列出的步骤,但只需花一点时间来了解这对您自己(或您的公司)意味着什么。然后在此基础上决定风险是否可以接受,以及是否需要采取任何额外措施来确保此文件的安全。

答案 3 :(得分:3)

我们设置自定义密钥库用于我们的调试版本。 Eclipse转到首选项 - &gt; Android - &gt;在“自定义调试密钥库”中构建文件名。

在我们为日食习俗创建密钥库时很重要。:

密钥库密码必须是“android” 它必须包含一个名为“androiddebugkey”的密钥 该密钥的密码必须是“android” 因此,尽管可以使用与导出相同的密钥库在调试中对应用程序进行签名,但它要求您的生产密钥库看起来像一个调试存储,如果文件中有人得到了它,则会降低安全性(这会更容易检查并猜测密码。)

如果我们想要更改密钥库密码:$ keytool -storepasswd -keystore my.keystore

如果我们想要更改密钥库别名密码:$ keytool -keypasswd -keystore my.keystore -alias my_name

如果我们想要更改密钥库别名:$ keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name

Vkj enter image description here

答案 4 :(得分:0)

这里有一些转换调试密钥库中常规密钥库的说明: https://stackoverflow.com/a/15754187/917362

答案 5 :(得分:0)

您可以使用Google Developers Console(console.developers.google.com)为同一Google API密钥输入调试和版本SHA1。

这样,您将拥有相同的API密钥,并且不再需要在AndroidManifest.xml中更改它。

答案 6 :(得分:0)

前一段时间我们在办公室遇到同样的问题。由于我们经常需要这个,所以我们编写了一个简单的脚本,以便将发布密钥库转换为调试密钥库。

该脚本可在https://github.com/IntellexApps/key2debug

上找到

我们现在使用它已经有一段时间了,所以应该非常稳定。

喝彩!