生成签名文件是使用JDK bin目录下keytool工具:
首先,我们需要一个keystore,当然已经有了的话就不用这一步了:
C:\Program Files (x86)\Java\jdk1.7.0_67\bin>keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: barry
您的组织单位名称是什么?
[Unknown]: com.android.barry
您的组织名称是什么?
[Unknown]: com.android.barry
您所在的城市或区域名称是什么?
[Unknown]: china
您所在的省/市/自治区名称是什么?
[Unknown]: china
该单位的双字母国家/地区代码是什么?
[Unknown]: china
CN=barry, OU=com.android.barry, O=com.android.barry, L=china, ST=china, C=china是否正
确?
[否]: Y
输入 <android.keystore> 的密钥口令
(如果和密钥库口令相同, 按回车):
其中参数-validity为证书有效天数,这里我们写的大些10000天。还有在输入密码时没有回显(尽管输就是啦) 并且 退格,tab等都属于密码内容,这个密码在给.apk文件签名的时候需要.
然后签名:
Eclipse中,右击需要签名的工程-->android tools-->export signed application package...
出现下面对话框,选择需要签名的工程
next,选择上面生成的android.keystore文件位置和设置的密码
next
next,选择签名生成文件的位置和名称
finish,搞定啦...
也许有人会遇到问题:keytool 错误: java.io.FileNotFoundException: android.keystore (拒绝访问。)
那是因为没有写入权限。
解决方法1:右键命令提示符,选择“以管理员身份运行”;
解决方法2:配置好环境变量,在别的盘里面生成签名文件。
=======================================================================================
Debug模式下的签名
Android build tools 提供了debug签名模式, 帮助简化应用的开发和调试, 而仍然符合Android系统签名.apk的需求. 当使用debug模式来构建app时, SDK 工具调用 Keytool来自动创建一个用于debug的 keystore 和 key. 然后这个debug key被用来自动签名 .apk, 所以不必用自己的key来签名包.
SDK 工具使用预定义的 名称/密码 来创建keystore/key :
- Keystore name: "debug.keystore"
- Keystore password: "android"
- Key alias: "androiddebugkey"
- Key password: "android"
- CN: "CN=Android Debug,O=Android,C=US"
如有必要, 可以更改 debug keystore/key 的 location/name 或自己提供一个自定义的 debug keystore/key. 然而, 任何自定义的debug keystore/key必须使用和默认debug key(如之前所述)相同的debug keystore/key 名称和密码. (Eclipse/ADT中, Windows > Preferences > Android > Build)
参考:http://www.wosign.com/Support/Android_DigitalID.htm注意: 当用debug证书签名时, 应用程序不能对外发布.