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 ...
随机推荐
- 微服务实战(六):选择微服务部署策略 - DockOne.io
原文:微服务实战(六):选择微服务部署策略 - DockOne.io [编者的话]这篇博客是用微服务建应用的第六篇,第一篇介绍了微服务架构模板,并且讨论了使用微服务的优缺点.随后的文章讨论了微服务不同 ...
- Node.js自学笔记之回调函数
写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...
- 【Codeforces Round #434 (Div. 1) B】Polycarp's phone book
[链接]h在这里写链接 [题意] 给你n个电话号码. 让你给每一个电话号码选定一个字符串s; 使得这个串s是这个电话号码的子串. 且不是任何一个其他电话号码的子串. s要求最短. [题解] 字典树. ...
- [React] Style the body element with styled-components and "injectGlobal"
In this lesson, we see how we can apply styles globally with the "injectGlobal" helper met ...
- Web网站架构演变—高并发、大数据
转 Web网站架构演变—高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系 ...
- zynq修改ramdisk文件系统
⑴ 挂载 Ramdisk新建目录 tmp, 并将 uramdisk.image.gz 拷贝至该目录$ cd <WORKDIR>/Filesystem$ mkdir tmp$ cp uram ...
- ios日期比较
+(int)compareDate:(NSDate *)date1 date:(NSDate *)date2 { NSDateFormatter *dateFormatter = [[NSDateFo ...
- DSO Framer _ WinForm 使用
根据自己对dsoframer控件的学习,想把dsoframer控件进行简单的包装为C#的usercontrol,大体需要作如下:(创建windows的usercontrol的步骤就不再说了...)我们 ...
- 【z08】乌龟棋
描述 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点 ...
- ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建
ibatis项目中用到了一些基本配置,须要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比較好理解.仅仅是须要他们的配置中每个类的含义,还有当中的一些细节 ...