概要:
本文主要讲解两方面的内容,一为备忘,二为分享,第一方面是android studio如何生成key文件,即.jks并用IDE进行编译签名,二是如何用已有的jks文件对已有的apk文件签名(其实这里和eclipse的原理一样的,方法也类似,但是网上对eclipse的签名文件.keystore描述的很多而对jks却寥寥无几)
用Android Studio生成签名工具并签名的步骤
打开android studio,build->Generate Signed APK然后会出现一个这样的界面
第一个就是我们的key文件,在android studio、中构建的是jks格式的,如果没有,可点击下面的create new来构建。alias是别名的意思,这里可以自己填了哈,很多人会忽视这个地方,一会讲到用命令行给已有的apk进行签名的时候会说到他的重要性!大家没有key就去create一个,界面如下
当然不用都填的,如果你是个小程序,只为测试用就把几个必填项填好就行了,就像账号啊密码啊什么的
填完之后就签名就行了,没什么难的,我只想记一下用命令行来对已有的应用进行签名,因为有时候别人给你一个签名文件和apk包并没有给你源代码就没有办法用我们的第一种办法签名了,也许这很少遇到,但我还是遇到了,其次我们都知道用命令行做事有时候会提高你对一些软件和框架的理解
用命令行对apk进行签名
首先,我们要用到
jarsigner,那么什么是jarsigner呢?其实他是在我们安装jDk的时候就有的,所以大家大可不必担心这个软件的下载问题,签名的时候让你去下载软件的只有两种情况,一是你没有IDE,因为IDE自带方便的签名打包功能,二是他们想耍流氓= =
言归正传,其实这个签名的方式很简单,打开命令行,把你的.jks和apk文件放到一个文件夹下,定位到这个文件夹下,调用jarsigner方法即可(我们配置JDK的时候配置过环境变量所以直接使用即可)
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ********.jks ******.apk cert
运行之后肯定会出现一个问题,就是“证书链错误”,这里可以用别名来替代证书链,也就是刚才说的那个的别名,即
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ********.jks ******.apk 别名
这样再运行就好啦
另外如果签完名想确认一下:
jarsigner -verify ******apk
想看详细信息
jarsigner -verify -verbose -certs *******.apk