牧者

大风起兮云飞扬

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Cordova 签名

一、使用命令行打包签名apk

打包apk

cordova bulid android               //用于测试的打包方式,生成已签名apk
cordova build --release android     //生成没有签名的apk

 

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

 

1、生成签名文件

 keytool -genkey -v -keystore kgsoft.keystore -alias kgsoft.keystore -keyalg RSA -validity 3650  -storetype PKCS12 

  

keytool是工具名称;

-dname "CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"  dn名为"CN=..." 
-alias scent                别名为scent的一个证书 
-keyalg 
     DSA RSA                DSA或RSA算法(当使用-genkeypair参数) 
     DES DESede AES         DES或DESede或AES算法(当使用-genseckey参数) 
-keysize 
     512 ~ 1024             密钥的长度为512至1024之间(64的倍数)(当使用-genkeypair和-keyalg DSA参数) 
     > 512                       密钥的长度大于512 (当使用-genkeypair和-keyalg RSA参数) 
     56                            密钥的长度为56 (当使用-genseckey和-keyalg DES 参数) 
     112 168                   密钥长度为112或168(当使用-genseckey和-keyalg DESede 参数) 
     128 192 256             密钥长度为128或192或256 (当使用-genseckey和-keyalg AES 参数) 
-keypass  123456              这个证书的私钥密码为123456 
-keystore prospectlib         证书库的名称为prospectlib 
-storepass 123456             证书库的访问密码为123456 
-validity  900            证书有效期为900天 
-file  scent.cer           从scent.cer文件导入证书,或者导出证书到scent.cer文件 
-v                               显示详细信息 
-rfc                            以Base64的编码格式打印证书 
-storetype JCEKS          密钥库的类型为JCEKS。常用的有JKS(默认),JCEKS(推荐),PKCS12,BKS,UBER。每个密钥库只可以是其中一种类型。

  

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

 

2.在项目/platforms/Android目录下新建release-signing.properties文件,填入:

storeFile=相对路劲/test.p12 
storePassword=** 
storeType=pkcs12 
keyAlias=testAlias 
keyPassword=** 

3.命令行下执行 cordova build android –release  

Cordova之打包签名apk

 

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

打包签名apk可以通过命令行、eclipse和android studio,这里先介绍命令行和eclipse方式,其他的之后补上。

 

一、使用命令行打包签名apk

  • 打包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意味着执行的是生成数字证书操作;

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

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

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

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

-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   根据自己的情况配置

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

 

 

二、使用eclipse打包签名apk

 

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

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

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

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

 

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

 原文地址

以上内容若有错误,欢迎批评指正。若侵犯他人版权,请联系我。
 
 
 
好文要顶 关注我 收藏该文  
0
0
 
 
 
« 上一篇:Cordova/PhoneGap 安卓开发环境搭建
» 下一篇:cordova启动页面和图标的设置
posted @ 2016-05-09 22:00 lion1ou 阅读(1667) 评论(0编辑 收藏

 

 
 
posted on 2017-04-11 10:01  牧者.D  阅读(825)  评论(0)    收藏  举报