debug.keystore的默认值

来源:互联网 发布:mysql insert安装教程 编辑:程序博客网 时间:2024/05/17 22:08


原文地址:http://blog.k-res.NET/archives/1229.html

                    http://blog.k-res.Net/archives/1671.html

(一)eclipse默认debugkeystore格式要求

最近开始研究Google Play的In-app Billing IAB内置计费API,发现一个比较烦人的问题就是测试时应用必须经过正式签名(其实接入各种SDK时,很多开放平台都需要签名的),而默认Eclipse ADT调试运行使用的是临时生成的Debug专用证书,默认为C:\Users\XXX\.android\debug.keystore

于是每次调试内置计费必须使用ADT的Export Signed Application Package打带正式签名的包,比较麻烦。后来发现ADT允许自定义调试用证书,在Window->Preferences->Android->Build->Custom debugkeystore这里,试了一下选择正式证书后提示:”Keystore was tampered with, or password was incorrect”,如下图所示:

QQ20130308142554
其实这个界面并没有提供输入Keystore密码,选择别名之类的地方,所以就感到非常奇怪了,查了一下官方文档发现,即使是自定义的调试证书,也需要保证和默认证书一样的密码,别名alias和别名密码。

文档中提到的默认证书信息如下:

Keystore name: “debug.keystore
Keystore password: “android
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US”

遵循这个规则就可以用自定义调试证书了。不过仔细想想感觉这功能这样很是鸡肋,希望以后版本的ADT会改进吧。

(二)开工操作

自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK、Facebook SDK等等…),这样如果使用默认自动生成的debugkeystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:

1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。

2. 修改keystore密码的命令(keytool为JDK带的命令行工具):

keytool -storepasswd -keystore my.keystore

其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android

3. 修改keystore的alias

keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey

这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。(注意在2.中已经修改密码为android)

4. 修改alias的密码:

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!(注意在2.中已经修改密码为android)

以上几个操作执行后,my.keystore就是符合规矩的debug keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,如下(然后apply就可以了):

sdk-an5

同时还可以看到证书的MD5以及SHA1指纹。

PS:以上3步命令行并没有先后顺序。


  1. 查看Eclipse的默认的签名文件。点击菜单的“Window”->“Preferences”,打开Preferences对话框。

    如何手动用Eclipse默认的keystore导出安卓应用
  2. 2

    然后点击左侧的“Android”->“Build”。可以看到keystore文件的具体存放路径。

    如何手动用Eclipse默认的keystore导出安卓应用
  3. 3

    这个keystore的密码是android,Alias是androiddebugkey。找到这个文件,然后在命令行输入:keytool -list -keystore debug.keystore。可以查看文件的内容。

    如何手动用Eclipse默认的keystore导出安卓应用
  4. 4

    知道了Password和Alias就可以进行导出应用了。在应用上点击右键->“Export”,弹出Export窗口。在里面选择“Export Android Application”,然后点击“Next”。

    如何手动用Eclipse默认的keystore导出安卓应用
  5. 5

    然后输入导出的文件的名字,然后再“Next”。

    如何手动用Eclipse默认的keystore导出安卓应用
  6. 6

    输入要使用的keystore的具体路径,然后输入password,就是“android”,点击下一步。

    如何手动用Eclipse默认的keystore导出安卓应用
  7. 7

    输入Alias和password,password与前面是同一个,点击下一步。

    如何手动用Eclipse默认的keystore导出安卓应用
  8. 8

    选择输出文件的路径,点击“Finish”。成功将文件导出。

    如何手动用Eclipse默认的keystore导出安卓应用
  9. 9





0 0