Android项目打包与签名对比
打包项目
AS打包
- 首先在IDE中打开
Build - Generate Signed APK...
- 如果已有签名文件,则按下图说明填写签名文件路径、密码、别名等,填写完毕点击
Next
进入第4步。
如果还没有签名文件可以点击Create new...
到第3步生成一个新签名文件。
- 在下图中填写相关信息,点击
OK
即可生成新签名文件,接着回到第2步填写相关信息。
- 依次填写apk输出路径、构建的版本类型,再点击
Finish
即可开始打包。
- 经过一段时间后,你看到下图,就代表你的apk已经打包完成啦~~可以进入apk输出路径查看文件。
用360打包工具打包
工具下载地址:360Signer for Windows
注意,该工具支持批量签名:可一次性选择多个需要签名的文件,一次性完成多个加固文件的签名工作。
下载完毕后,解压无需安装,双击360Signer.exe
即可打开软件。
填写相关信息,点击一键签名
,稍等片刻即可完成签名。
用命令打包
使用JDK自带的jarsigner工具来完成签名。jarsigner工具的命令格式是:
# jarsigner的命令格式
jarsigner -verbose -keystore [您的签名文件路径] -signedjar [签名后apk放路径] [待签名apk路径] [别名]
#jarsigner的参数说明
-keystore 参数指定您的签名文件的绝对路径,例如:c:\mykeystore.jks
-signedjar 参数指定签名后apk存放绝对的路径,例如 c:\hello-signed.apk
[待签名apk路径] 指定要签名apk文件的绝对路径,例如 c:\hello-unsigned.apk
[别名] 是指您创建签名文件时,您设置的别名(Alias)
对比apk签名指纹
当我们的应用需要上线到不同应用市场时,有些应用市场需要对该应用市场提供的空包
进行签名,并上传签名后的空包,应用市场会验证签名后的空包和我们的apk是否使用同一签名文件签名,只有签名相同时,我们的应用才能上线。
为了能验证通过,我们可以先本地对比签名后的空包和我们的应用的签名指纹。
1. 查找apk的RSA文件
jar tf your_app_name.apk |findstr RSA
META-INF/CERT.RSA
从apk中解压RSA文件
jar xf your_app_name.apk META-INF/CERT.RSA
获取签名指纹
keytool -printcert -file META-INF/CERT.RSA