今天总结下本人一直使用的在J2ME,BlackBerry和Android平台下签名方法。
J2ME:
1.生成key store. 用JAVA_HOME/bin目录下"keytool.exe"命令生成。
E.g.
D:/Java/jdk1.5.0_15/bin>keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -validity 10000
2.生成key store后还得修改下证书,必须需要手机厂商承认的证书,这就得去花钱买了,Verisign和Thawte都能买到证书,
然后进行签名。
3.本人一般都用ANTENNA ANT生成J2ME程序,所以签名相对简单些,直接调用"Wtksign"任务来进行数字签名。
E.g.
<wtksignkeystore="${keystore-path}"
jarfile="${path.build}/${jar.name}.jar"
jadfile="${path.build}/${jar.name}.jad"
storepass="${keystore-pass}"
certalias="${alias-name}"
certpass="${keystore-pass}"
/>
或者也可以运行WTK里面的Utilities进行签名。
Android:
觉得Android最通用了,它不需要去购买证书,用JAVA的签名就可以。
1.生成Key store方法和J2ME一样。
2.调用JAVA_HOME/bin目录下"jarsigner.exe"命令对已生成的.apk文件进行签名。如果用ANT来build
程序也可以调用ANT提供的"signjar"任务。
E.g.
D:/Java/jdk1.5.0_15/bin>jarsigner -verbose -keystore my-release-key.keystore
my_application.apk alias_name
BlackBerry:
黑莓比较麻烦些,而且对于中国用户来说很不方便。首先,你得去购买个签名账户,然后才能进行
签名。据说好像不对中国用户提供,我也没有研究过,都是公司买个签名。购买后RIM会发给你3个.csi文件,分别对应不同的API使用。.csi文件生成key之后就不能在别的电脑使用了,这点也不爽。
假设你真的购买到.csi文件并且生成完key后,调用BB_HOME/bin目录下的SignatureTool.jar文件,选择你需要签名的程序最后点Request就进行签名了,如果成功了在Status一栏里会看到Signed字样。
好了,先到这吧。回家做饭去了