Android:apk签名

夙愿已清 提交于 2019-12-03 20:26:46
一、android apk签名有几种方法?
1、利用jdk工具进行apk签名
2、利用Eclipse中的ADT对apk进行签名

二、每种签名方法具体怎么操作?
1、利用jdk工具进行签名:
a、运行dos,cd到apk所在的目录,简称apk_dir
b、生成签名文件
命令如下:
apk_dir>keytool -genkey -alias signapk.keystore -keyalg RSA -validity 20000 -keystore signapk.keystore
运行结果如下:
 
 
c、对apk文件进行签名
apk_dir>jarsigner -verbose -keystore signapk.keystore -signedjar new.apk Corner.apk signapk.keystore
运行结果如下:
 

d、验证签名
apk_dir>jarsigner -verify new.apk
jar 已验证。

备注:可能遇到的问题
1、在上面第二步如果提示:jarsigner 无法对jar进行签名:java.util.zip.ZipException:……
很可能的原因是:这是因为默认给apk做了debug 签名,所以无法做新的签名,这时就可以点工程右键->Android Tools ->Export Unsigned Application Package,导出一个没有做debug签名的apk。
2、如果在上面第三步如果提示:“警告:此 jar 包含证书链未验证的条目。”这可能是你的jdk版本是1.7的,同样方法在jdk1.6上可以,造成的原因应该是jdk1.7与1.6有些区别。

2、利用Eclipse中的ADT工具签名:
a、选中android项目,点鼠标右键
 Android Tools --> Export Signed Application Packge...
b、Project Checks(这里基本不用动) --> Keystore selection 选择 create new keystore 
 在下面依次填写签名文件的名字(要以.store结尾),密码,重复密码 --> key creation
 填写签名详细信息
c、给签名后的apk文件输入一个名字,点Finsh完成!
如下图:
 
 
 
 
 
   

备注:签名过程常碰到的一个问题及解决办法
问题:提示先处理完警告以及“You should check if you need to specify additional program jars”,签名失败,如下图:
原因是工程中引入了第三方jar包。
 

解决办法:需要在proguard.cfg文件第一行加上-dontwarn即可解决,如下:
 
-----------
更多android精彩详见我的网易博客:
http://songyuanlin1101.blog.163.com/
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!