Cordova之打包签名apk

首先是关于apk签名,Android程序的安装是以包名(package name)进行区分的,就是一样的包名会被认做是同一个程序。这样就能够进行升级、替换。可是包名是一个能够被查看的字符串,这样就可能被伪造,而后其余人就能够本身建立一个应用去替代你的应用,结果可想而知。而签名就是为了防止这样的状况发生,当你的程序被签名后安装,只有一样包名与签名的程序才能被替换安装。而签名是不可能简单被伪造的,从而保证了程序的安全性。 android

打包签名apk能够经过命令行、eclipse和android studio,这里先介绍命令行和eclipse方式,其余的以后补上。git

 

1、使用命令行打包签名apkgithub

  • 打包apk
cordova bulid android               //用于测试的打包方式,生成已签名apk

cordova build --release android     //生成没有签名的apk

第一个命令生成的是一个Cordova-debug.apk,很明显是用来进行本地开发测试使用的,注意这个apk是有签名的,因此能被安装在手机上,可是这个不能用来上架,由于只有在绝对一样的环境下进行打包,才能保证这个apk的签名相同,意味着你这台机器必须始终保持正常而且系统和打包工具等不做修改。这明显是不合理的。因此,咱们必须采用生产的方式打包,就是第二个命令,这个命令生成的是一个无签名的apk,他没法安装在手机上,必须进行签名。算法

  • 生成签名文件
keytool -genkey -v -keystore demo.keystore -alias demo.keystore -keyalg RSA -validity 20000

keytool是工具名称;安全

-genkey意味着执行的是生成数字证书操做;eclipse

-v表示将生成证书的详细信息打印出来;工具

-keystore demo.keystore 表示证书的文件名; 测试

-alias demo.keystore 表示证书的别名;ui

-keyalg RSA 生成密钥文件所采用的算法; spa

-validity 20000 该数字证书的有效期,单位是

输入后会让你输入密码,并回答一些关于你公司和地区的问题,回答完后截屏记录,防止忘记。

  • 签名apk
jarsigner -verbose -keystore /yourpath/demo.keystore -signedjar /yourpath/demo_signed.apk  /yourpath/demo.apk  /yourpath/demo.keystore 

jarsigner是工具名称,

-verbose表示将签名过程当中的详细信息打印出来;

/yourpath/  (根据本身的状况配置)相对于当前命令行所在文件夹的位置,可将下列文件放在同一目录下;

-keystore   /yourpath/demo.keystore   刚刚生成的签名文件

-signedjar  /yourpath/demo_signed.apk  签名后的apk名称 

/yourpath/demo.apk  须要签名的apk

/yourpath/demo.keystore 证书的别名

  • 查看apk的签名

查看签名是否成功,可将签名后的文件,后缀名apk的改成zip,解压。

在该目录下,输入以下命令:

keytool -printcert -file META-INF/CERT.RSA

 META-INF/TEST.RSA   根据本身的状况配置

输入命令行后,会出现相似下图信息

 

 

2、使用eclipse打包签名apk

 

首先,选择Export...以下图:

建立密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到。

填写密钥库信息,填写一些apk文件的密码,使用期限和组织单位的信息。

生成带签名的apk文件,到此就结束了。

 

如有不对之处,请批评指正,谢谢!

 原文地址