configurationEclipse以使用签名密钥库
我终于为我的应用程序创build了一个“final”keystore。 当我的应用程序使用Google地图时,我必须更新所有布局才能使用应用程序产生的新API密钥。
现在我完全意识到需要导出已签名的APK以进行发布,但之后呢? 我的想法是,进一步的开发和testing,如果我可以configurationEclipse来使用我的最终密钥库而不是debugging密钥库是最简单的,但我发现没有办法做到这一点? 它只允许我configuration一个“替代”debugging键,但我想这不是一回事。
对不起,如果我在这里完全误解了一些东西,我太困惑了。
我能够将我的Google Play版本密钥库用作我的自定义debugging密钥库,以帮助您debugging应用内购买function。 无疑,这同样适用于debuggingGoogle地图的东西。
正如Devunwired所说 ,有一些警告。 但我的解决scheme是这样的:
- 在某处复制你的释放键。
- 按照此处的说明更改密钥库密码/密钥密钥和密钥别名(也遵循Devunwired的build议,使其看起来像debugging密钥库)。
- 将Eclipse的“首选项”>“Android”>“生成”>“自定义密钥库”设置更改为步骤1中创build的副本的path。
- 完成!
您可以通过转到首选项 – > Android – >生成并在“自定义debugging密钥库”选项中input文件名,来configuration自定义密钥库以用于Eclipse中的debugging版本(在单击“运行…”时发生的debugging版本) 。
但是 ,有一点要注意,它必须遵循与传统debugging密钥库相同的规则,主要是:
- 密钥库密码必须是“android”
- 它必须包含一个名为“androiddebugkey”
- 该密钥的密码必须是“android”
因此,尽pipe可以在debugging时使用与Export一样的密钥存储库对应用程序进行签名,但它要求您的生产密钥库看起来像一个debugging存储区,如果有人查看了该文件(这样会更容易些检查和猜测密码)。
HTH
为了使Eclipse在部署时自动为您签名,您需要设置一个与debugging密钥库行为相似的密钥库。 这意味着必须有一个“androiddebugkey”,密钥和密钥库密码必须是“android”。 因此,我build议如下:
- 制作你的密钥库副本,我把它复制到一个名为iap.keystore的文件中
- 使用path上的keytool打开terminal/命令窗口(对于我来说,path是D:\ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe),或者在下面的命令中使用完整path来
keystore
- 将您的密钥库密码更改为“android”:
-
keytool -storepasswd -keystore iap.keystore
- 按提示input您的旧密钥库密码
- 按提示input
android
作为新密码 - 按提示确认
android
作为密码
-
- 将您的密钥重命名为
androiddebugkey
( 在下一个命令中用您当前的密钥名称replaceOld_Key_Store_Name
)-
keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
- 按提示input您的密钥库密码(现在是
andorid
) - 按照提示input您的
Old_Key_Store_Name
密码(这是您之前将密钥密码设置为的任何内容)
-
- 更改你的
androiddebugkey
的密码-
keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
- 按提示input您的密钥库密码(现在是
andorid
) - 按照提示input你的
androiddebugkey
密码(这是你以前的密钥设置为密码) - 按提示input
android
作为新的密钥密码 - 按提示确认
android
为密钥
-
- 您现在有一个密钥库(带有密钥),Eclipse可以使用它来自动签署构build器。
- 加载Eclipse。
- 窗口 – >首选项 – > Android – >生成
- 按照“自定义debugging密钥库”浏览到我们以前创build的iap.keystore文件
- 好
现在,当您启动/debugging您的项目时,它将使用我们刚刚设置的密钥库来签署您的项目。 这将允许像IAP这样的工作。
注意:这很方便,但是当然如果有人拿着你的iap.keystore,他们就可以用'android'作为密钥库/密钥来签名。 希望这显然是从上面列出的步骤,但只是花一秒钟来欣赏这对自己(或你的公司)意味着什么。 然后据此决定风险是否可以接受,如果您需要采取任何额外的措施来确保这个文件的安全。
我们设置自定义密钥库用于我们的debugging版本。 Eclipse转到“首选项” – >“Android” – >“生成”,然后在“自定义debugging密钥库”中input文件名。
重要的是当我们创build我们的食谱海关的密码存储区:
密钥库密码必须是“android”它必须包含一个名为“androiddebugkey”的密钥该密钥的密码必须是“android”因此,尽pipe可以在debugging时使用与Export一样的密钥库对应用程序进行签名,但它需要您的产品keystore看起来像一个debugging存储,如果有人查看文件(这将更容易检查和猜测密码),这使得它不太安全。
如果我们要更改密钥库密码:$ 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
这里有一些转换debugging密钥库中的常规密钥库的说明: https : //stackoverflow.com/a/15754187/917362
您可以使用Google Developers Console(console.developers.google.com)为同一个Google API密钥inputdebugging版本和发行版本SHA1。
这样,您将拥有相同的API密钥,并且不再需要在AndroidManifest.xml中对其进行更改。
我们前段时间在我们的办公室也有同样的问题。 由于我们经常需要这个function,所以我们编写了一个简单的脚本,以便将发行版密钥库转换为debugging版本。
该脚本可在https://github.com/IntellexApps/key2debug上find
我们现在使用它一段时间,所以应该相当稳定。
干杯!