我终于为我的应用程序创建了一个“最终”密钥库。由于我的应用正在使用谷歌地图,我认为我必须更新所有布局以使用该应用产生的新 API 密钥。
现在我完全了解导出已签名 APK 以供发布的要求,但之后呢?我的想法是,对于进一步的开发和测试,如果我可以将 Eclipse 配置为使用我的最终密钥库而不是调试密钥库,那将是最简单的……但我发现没有办法做到这一点?它只允许我配置一个“替代”调试密钥,但我想这不一样。
对不起,如果我在这里完全误解了某些东西,我太困惑了。
您可以通过转到 Preferences -> Android -> Build 并在“Custom debug keystore”选项中输入文件名,在 Eclipse 中配置自定义密钥库以用于调试构建(单击运行时发生的构建...) .
但是,需要注意的是,它必须遵循与传统调试密钥库相同的规则,主要是:
因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它要求您的生产密钥库看起来像一个调试存储,这使得如果有人在文件中持有它会降低安全性(这会更容易检查和猜测密码)。
高温高压
我能够使用我的 Google Play 发布密钥库作为我的自定义调试密钥库来帮助调试应用内购买功能。毫无疑问,这同样适用于调试谷歌地图的东西。
正如Devunwired 提到的,有一些警告。但我的解决方案是这样的:
为了让 Eclipse 在您部署时自动为您签名,您需要设置一个行为类似于调试密钥库的密钥库。这意味着必须有一个“androiddebugkey”,并且密钥和密钥库密码都必须是“android”。因此,我建议以下内容:
keystore
在下面的命令中使用完整路径keytool -storepasswd -keystore iap.keystore
android
新密码android
密码androiddebugkey
(在下一个命令中替换为您当前的密钥名称)Old_Key_Store_Name
keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
andorid
)Old_Key_Store_Name
密码(这是您之前设置的密钥密码)androiddebugkey
keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
andorid
)androiddebugkey
密码(这是您之前设置的密钥密码)android
新的密钥密码android
为密钥密码现在,当您启动/调试项目时,它将使用我们刚刚设置的密钥库来签署您的项目。这将允许 IAP 之类的东西起作用。
注意:这很方便,但当然,如果有人掌握了您的 iap.keystore,他们将能够通过使用“android”作为密钥库/密钥密码来以您的身份进行签名。希望这显然来自上面列出的步骤,但请花点时间了解这对您自己(或您的公司)意味着什么。然后根据此决定风险是否可以接受,以及是否需要执行任何额外措施以确保此文件的安全性。
我们设置自定义密钥库以用于我们的调试构建。Eclipse 转到 Preferences -> Android -> Build 并在“自定义调试密钥库”中输入文件名。
当我们为 Eclipse 海关创建密钥库时很重要:
密钥库密码必须是“android” 它必须包含一个名为“androiddebugkey”的密钥 该密钥的密码必须是“android” 因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它需要您的生产keystore 看起来像一个调试存储,如果有人得到文件,这会降低安全性(检查和猜测密码会更容易)。
如果我们想更改密钥库密码: $ 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
前段时间我们办公室也有同样的问题。由于我们经常需要这个,所以我们编写了一个简单的脚本来轻松将发布密钥库转换为调试密钥库。
该脚本可在https://github.com/IntellexApps/key2debug上找到
我们现在使用它有一段时间了,所以应该很稳定。
干杯!
这里有在调试密钥库中转换常规密钥库的说明: https ://stackoverflow.com/a/15754187/917362
您可以使用 Google Developers Console (console.developers.google.com) 为同一个 Google API 密钥输入调试和发布 SHA1。
这样,您将拥有相同的 API 密钥,并且不再需要在 AndroidManifest.xml 中更改它。