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文件,到此就结束了。

若有不对之处,请批评指正,谢谢!
Cordova之打包签名apk的更多相关文章
- eclipse 和 android studio 打包签名apk问题
首先,我使用eclipse打包了一个签名apk 然后,我使用同一个签名文件在android studio 打包同一个项目 接下来,首先安装eclipse 打包的apk,然后安装android stud ...
- Android studio使用心得(二)— 打包签名apk发布
1.—–Android Studio菜单 Build->Generate Signed APK 2.——Create new.. 3.——-跟eclipse里面一样,添加keystore 信 ...
- IONIC3 打包安卓apk详细过程(大量图文)
经历三天的踩坑,跳坑,相信绝大多数的问题都已经覆盖到了,请仔细按照流程来对照操作及检查. 1.基本依赖环境 nodejs环境 (作为一个前端相信你已经有了) 最好提前配置好node的环境变量,便于全 ...
- cordova+vue 项目打包成APK应用遇到的问题和解决方法
公司前端界面用的是vue,我要嵌入到Android中生成App第一步:安装nodenode安装:直接进入官网https://nodejs.org/zh-cn/,下载最新版本安装.安装之后在命令行中使用 ...
- 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录
前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...
- Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
文/ skay csdn博客:http://blog.csdn.net/sk719887916/article/details/40541163 最近遇到项目从Eclispe迁移到Android st ...
- 关于cordova+vue打包apk文件无法访问数据接口
作为一个cordova小白,我按照官方文档和网上资料完成了讲vue文件打包到cordova中并打包成apk文件,完成了一个简单app的制作,当我正陶醉于可以自己完成一个app的时候突然发现,我的app ...
- 【React Native开发】React Native进行签名打包成Apk
转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50525976 本文出自:[江清清的博客] (一)前言 [好消息]个人 ...
- 使用cordova把h5应用打包成apk
由于h5应用开发不是本例重点,因此直接提供一个最简单的h5应用代码,此应用使用vue-cli框架开发 此h5应用叫vue1,用webstrom打开vue1,进行npm install安装引用 vue1 ...
随机推荐
- Java Timer TimerTask Example(java Timer的例子)
Java java.util.Timer is a utility class that can be used to schedule a thread to be executed at cert ...
- Android开发系列(二十):AutoCompleteTextView(自己主动完毕文本框)的功能和使用方法
当用户输入一定的字符之后,自己主动完毕文本框可以显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView可以依照用户的选择自己主动填写该文本框 AutoCo ...
- php中嵌套html代码和html代码中嵌套php方式
php中嵌套html代码和html代码中嵌套php方式 一.总结 拷贝的话直接html代码是极好的方式 1.php中嵌套html代码(本质是原生php):a.原生嵌套<?php .....?&g ...
- shrio 权限管理filterChainDefinitions过滤器配置(转)
/** * Shiro-1.2.2内置的FilterChain * @see ============================================================= ...
- Java中字节与对象之间的转换
近期公司里面用到了消息队列,而正如我们知道的是消息队列之间的是通过二进制形式的.以下就分享一下java中字节与对象之间的转换. 主要是用到了ByteArrayOutputStream和ObjectOu ...
- 搭建hadoop2.6.0集群环境 分类: A1_HADOOP 2015-04-20 07:21 459人阅读 评论(0) 收藏
一.规划 (一)硬件资源 10.171.29.191 master 10.171.94.155 slave1 10.251.0.197 slave3 (二)基本资料 用户: jediael 目录: ...
- Vim技巧之四大模式_插入模式
Vim技巧之四大模式_插入模式 在插入模式中及时更正错误 插入-普通模式 在插入模式模式以下直接粘贴指定寄存器的内容 插入模式中做运算 用字符编码插入很常使用字符 替换已有的文本 Vim技巧之四大模式 ...
- 一个神奇的控件——Android CoordinatorLayout与Behavior使用指南
CoordinatorLayout是support.design包中的控件,它可以说是Design库中最重要的控件. 本文通过模仿知乎介绍了自定义Behavior,通过模仿百度地图介绍了BottomS ...
- [RxJS] Split an RxJS observable conditionally with windowToggle
There are variants of the window operator that allow you to split RxJS observables in different ways ...
- Deepin系统更新apt-get源
1.复制原文件备份sudo cp /etc/apt/source.list /etc/apt/source.list.bak2.编辑源列表文件sudo vim /etc/apt/source.list ...