1.Eclipse中,选择Android Tools->Export Unsigned Application Package... , 接下来,系统会提示你输入apk文件的保存地址。这样我们就编译生成了发布版的未签名的apk文件. eg.
sdialer.apk2.完成了发布版的编译,接下来是获取私钥,会用到JDK下的两种工具:keytool和jarsigner. keytool是生成私钥的工具。
keytool命令的解释:-genkey 产生一个密钥对(公钥和私钥)
-v 开启详细输出
-keystore
.keystore 包含私钥的keystore名称
-storepass keystore的密码。安全起见,通常建议不要在命令行输入这个选项,如果你不提供这个选项,keytool就会提示你输入密码,这样你的密码就不会保存在shell历史中。
-alias 密钥的别名
-keyalg 产生密钥的加密算法,可以采用DSA和RSA中的一种
-dname 用于描述密钥的产生者。这个值将作为自签名证书中的发布者。如果你此时没有输入,那么在执行签名时,jarsigner会提示你输入dname(distinguished name)
-validity 密钥的有效期,这里以天来计算。我们通常建议大于10000天
-keypass 密钥的密码,安全起见,通常建议不要在命令行输入这个选项,如果你不提供这个选项,keytool就会提示你输入密码,这样你的密码就不会保存在shell历史中。
jarsigner命令解释:
-keystore 包含私钥的keystore
.keystore
-verbose 开启详细输出
-storepass keystore的密码,安全起见,通常建议不要在命令行输入这个选项,如果你不提供这个选项,jarsigner就会提示你输入密码,这样你的密码就不会保存在shell历史中。
-keypass 密钥的密码,安全起见,通常建议不要在命令行输入这个选项,如果你不提供这个选项,jarsigner就会提示你输入密码,这样你的密码就不会保存在shell历史中。
eg.
keytool -genkey -v -keystore s-dialer.keystore -alias sdialer_name -keyalg RSA -validity 10000
输出一个s-dialer.keystore,密钥别名为sdialer_name。有了密钥,我们就可以用它来进行签名。签名工具是jarsigner.
eg. jarsigner -verbose -keystore s-dialer.keystore sdialer.apk sdialer_name
这样,就为应用程序sdialer.apk完成了签名
应用程序的版本
Android应用程序主要通过androidmanifest.xml中的android:versionCode和android:versionName来实现版本管理的
阅读(2189) | 评论(0) | 转发(0) |