我终于为我的应用程序创建了一个“最终”密钥库 . 由于我的应用程序使用谷歌 Map ,我需要更新所有布局以使用应用程序产生的新API密钥 .
现在我完全了解导出已签名的APK以供发布的要求,但之后是什么?我的想法是,对于进一步的开发和测试,如果我可以将Eclipse配置为使用我的最终密钥库而不是调试密钥库,那将是最简单的......但我发现没有办法做到这一点?它只允许我配置一个“替代”调试密钥,但我想这不一样 .
如果我在这里完全误解了一些东西,我会感到很困惑 .
我们将自定义密钥库设置为用于我们的调试版本 . Eclipse转到首选项 - > Android - >在“自定义调试密钥库”中构建并输入文件名 .
当我们为日食习俗创建密钥库时很重要:
密钥库密码必须是“android”它必须包含一个名为“androiddebugkey”的密钥 . 密钥的密码必须是“android”因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它需要您的 生产环境 密钥库看起来像一个调试存储,如果有人得到ahold(如果有的话),它会降低安全性更容易检查和猜测密码) .
如果我们想要更改密钥库密码:$ 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://stackoverflow.com/a/15754187/917362
您可以使用Google Developers Console(console.developers.google.com)为同一Google API密钥输入调试和版本SHA1 .
这样,您将拥有相同的API密钥,并且不再需要在AndroidManifest.xml中更改它 .
我们前一段时间在办公室遇到同样的问题 . 由于我们经常需要这个,我们编写了一个简单的脚本,以便将发布密钥库转换为调试密钥库 .
该脚本可在https://github.com/IntellexApps/key2debug上找到
我们现在使用它已经有一段时间了,所以应该非常稳定 .
干杯!
我能够使用我的Google Play发布密钥库作为我的自定义调试密钥库来帮助调试应用内购买功能 . 毫无疑问,同样适用于调试Google Maps的内容 .
至于Devunwired mentioned,有一些警告 . 但我的解决方案是:
在某处复制释放密钥 .
在the instructions here之后更改密钥库密码/密钥密码和密钥别名(同样,遵循Devunwired的建议使其看起来像调试密钥库) .
将Eclipse的首选项> Android> Build>自定义密钥库设置更改为在步骤1中创建的副本的路径 .
完成!
您可以通过转到首选项 - > Android - >构建并在“自定义调试密钥库”选项中输入文件名,在Eclipse中配置用于调试版本(在单击Run ...时发生的版本)的自定义密钥库 .
However ,它有一点需要注意,它必须遵循与传统调试密钥库相同的规则,主要是:
密钥库密码必须是"android"
必须包含名为"androiddebugkey"的密钥
该密钥的密码必须为"android"
因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它要求您的 生产环境 密钥库看起来像一个调试存储,这使得如果有人在文件中得到保护它会更不安全(这会更容易检查和猜测密码) .
HTH
为了让Eclipse在部署时自动为您签名,您需要设置一个行为类似于调试密钥库的密钥库 . 这意味着必须有一个'androiddebugkey',密钥和密钥库密码都必须是'android' . 因此,我建议如下:
制作密钥库的副本,我将其复制到名为iap.keystore的文件中
在路径上使用keytool打开终端/命令窗口(对我来说路径是D:\ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe)或使用以下命令中的 keystore 的完整路径
keystore
将密钥库密码更改为'android':
keytool -storepasswd -keystore iap.keystore
按照提示输入旧的密钥库密码
按照提示输入 android 作为新密码
android
按照提示确认 android 作为密码
将您的密钥重命名为 androiddebugkey ( replace Old_Key_Store_Name with your current key name in the next command)
androiddebugkey
keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
按照提示输入您的密钥库密码(现在是 andorid )
andorid
按照提示输入您的 Old_Key_Store_Name 密码(这是您之前设置的密钥密码)
Old_Key_Store_Name
更改 androiddebugkey 的密码
keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
按照提示输入您的 androiddebugkey 密码(这是您之前设置的密码密码)
按照提示输入 android 作为新密钥密码
按照提示确认 android 为密钥密码
您现在拥有一个密钥库(带密钥),Eclipse可以使用它来自动签署构建器 .
加载Eclipse .
Window - > Preferences - > Android - > Build
按照'Custom debug keystore'浏览到我们之前创建的iap.keystore文件
好的
现在,当您启动/调试项目时,它将使用我们刚刚设置的密钥库来签署您的项目 . 这将允许像IAP这样的东西工作 .
BEWARE: 这很方便,但当然如果有人 grab 你的iap.keystore,他们就可以使用'android'作为密钥库/密钥密码来签名 . 希望这显然来自上面列出的步骤,但只需花一点时间来了解这对您自己(或您的公司)意味着什么 . 然后根据该决定风险是否可以接受,以及是否需要执行任何额外措施以确保此文件的安全性 .
7 回答
我们将自定义密钥库设置为用于我们的调试版本 . Eclipse转到首选项 - > Android - >在“自定义调试密钥库”中构建并输入文件名 .
当我们为日食习俗创建密钥库时很重要:
密钥库密码必须是“android”它必须包含一个名为“androiddebugkey”的密钥 . 密钥的密码必须是“android”因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它需要您的 生产环境 密钥库看起来像一个调试存储,如果有人得到ahold(如果有的话),它会降低安全性更容易检查和猜测密码) .
如果我们想要更改密钥库密码:$ 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://stackoverflow.com/a/15754187/917362
您可以使用Google Developers Console(console.developers.google.com)为同一Google API密钥输入调试和版本SHA1 .
这样,您将拥有相同的API密钥,并且不再需要在AndroidManifest.xml中更改它 .
我们前一段时间在办公室遇到同样的问题 . 由于我们经常需要这个,我们编写了一个简单的脚本,以便将发布密钥库转换为调试密钥库 .
该脚本可在https://github.com/IntellexApps/key2debug上找到
我们现在使用它已经有一段时间了,所以应该非常稳定 .
干杯!
我能够使用我的Google Play发布密钥库作为我的自定义调试密钥库来帮助调试应用内购买功能 . 毫无疑问,同样适用于调试Google Maps的内容 .
至于Devunwired mentioned,有一些警告 . 但我的解决方案是:
在某处复制释放密钥 .
在the instructions here之后更改密钥库密码/密钥密码和密钥别名(同样,遵循Devunwired的建议使其看起来像调试密钥库) .
将Eclipse的首选项> Android> Build>自定义密钥库设置更改为在步骤1中创建的副本的路径 .
完成!
您可以通过转到首选项 - > Android - >构建并在“自定义调试密钥库”选项中输入文件名,在Eclipse中配置用于调试版本(在单击Run ...时发生的版本)的自定义密钥库 .
However ,它有一点需要注意,它必须遵循与传统调试密钥库相同的规则,主要是:
密钥库密码必须是"android"
必须包含名为"androiddebugkey"的密钥
该密钥的密码必须为"android"
因此,虽然可以使用与导出相同的密钥库在调试中签署您的应用程序,但它要求您的 生产环境 密钥库看起来像一个调试存储,这使得如果有人在文件中得到保护它会更不安全(这会更容易检查和猜测密码) .
HTH
为了让Eclipse在部署时自动为您签名,您需要设置一个行为类似于调试密钥库的密钥库 . 这意味着必须有一个'androiddebugkey',密钥和密钥库密码都必须是'android' . 因此,我建议如下:
制作密钥库的副本,我将其复制到名为iap.keystore的文件中
在路径上使用keytool打开终端/命令窗口(对我来说路径是D:\ NVPACK \ jdk1.6.0_45 \ bin \ keytool.exe)或使用以下命令中的
keystore
的完整路径将密钥库密码更改为'android':
keytool -storepasswd -keystore iap.keystore
按照提示输入旧的密钥库密码
按照提示输入
android
作为新密码按照提示确认
android
作为密码将您的密钥重命名为
androiddebugkey
( replace Old_Key_Store_Name with your current key name in the next command)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
为密钥密码您现在拥有一个密钥库(带密钥),Eclipse可以使用它来自动签署构建器 .
加载Eclipse .
Window - > Preferences - > Android - > Build
按照'Custom debug keystore'浏览到我们之前创建的iap.keystore文件
好的
现在,当您启动/调试项目时,它将使用我们刚刚设置的密钥库来签署您的项目 . 这将允许像IAP这样的东西工作 .
BEWARE: 这很方便,但当然如果有人 grab 你的iap.keystore,他们就可以使用'android'作为密钥库/密钥密码来签名 . 希望这显然来自上面列出的步骤,但只需花一点时间来了解这对您自己(或您的公司)意味着什么 . 然后根据该决定风险是否可以接受,以及是否需要执行任何额外措施以确保此文件的安全性 .