Android APK生成证书并签名方法
Android APK生成证书并签名方法
android cordova keystore android证书签名 阅读:925 时间:2018年09月20日
Android开发者可能对此很熟悉。使用Cordova等工具初试Hybird开发的前端同学可能就并不了解了,记录一下Ionic-cli / cordova项目打包APK后的签名详细过程共参考:
整个流程为:打包release版本的APK -> 生成keystore证书 -> 使用keystore证书签名APK -> 发布到应用市场
这里我们只关注生成证书与签名部分。
一、【前置环境准备】
电脑上安装了Java JDK与Android SDK,配置好环境变量等。做Android这步应该都是好的,如果没装自行百度。
二、【生成keystore证书】
Android APK的keystore证书不收费,不需要申请,可以自己生成。
首先我们要使用keytool生成keystore证书。
keytool已经集成在JDK中了。在命令行输入命令:
keytool -genkey -v -keystore myApp.keystore -alias myApp.keystore -keyalg RSA -validity 30000
运行一下试试
命令详细说明
| key | dec |
| keytool | 工具名称(固定写法) |
| )-genkey | 执行的是生成数字证书操作(固定写法) |
| -v | 打印生成证书的详细信息 |
| -keystore myApp.keystore | 生成的证书的文件名为"myApp.keystore"(根据需求,设置你的证书名) |
| alias myApp.keystore | 证书的别名为"myApp.keystore"。(一般和上面的文件名相同,可以不同,但要记好,签名时会用(A)) |
| -keyalg RSA | 生成密钥文件采用的算法为RSA(固定写法) |
| -validity 3000 | 该数字证书的有效期为30000天,30000天之后该证书将失效 |
按格式执行命令,
第一步会要求创建一个密钥。自己输入一个并记好。输入后并不会显示在窗口中,直接回车后,要求再次输入,重复输入后回车。
然后按提示填写各个问题。
最后在生成证书时会要求输入一个密钥,比如 : android 这个密钥是后面签名要用到的务必记好(B),建议与上面密钥相同。输入后回车
就可以在当前命令行的位置生成如:"myApp.keystore"的证书文件。
过程如图:

三、【给APK签名】
2. 把apk 与 myApp.keystore 放在同一目录下(不放在同一目录下也可以。放同目录下省去了配置路径的麻烦)
3. 在该目录下执行命令:
jarsigner -verbose -keystore myApp.keystore -signedjar android-release-signed.apk android-release-unsigned.apk myApp.keystore
运行一下试试
命令详细说明
| key | dec |
| jarsigner | 工具称名(固定写法) |
| -verbose | 显示出签名详细信息 |
| -keystore myApp.keystore myApp.keystore | 要使用的签名证书文件 |
| -signedjar android-release-signed.apk | 签名后的文件名 |
| android-release-unsigned.apk | 要签名的文件 |
| myApp.keystore | 别名,即(A)步中的别名 |
4. 执行上面命令会要求输入签名密码,比如 android (上面(B)位置提到的)后回车,会在同目录下生成一个签好名的的android-release-signed.apk即为可发布的签名包
过程如图:

中间详细信息截图太长,省略

Android APK生成证书并签名方法的更多相关文章
- openssl生成证书及签名
第一步,生成私钥 $ openssl genrsa -out privatekey.pem 2048 查看生成的私钥内容 $ file privatekey.pem privatekey.pem: P ...
- Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
转载请标明出处:http://blog.csdn.net/donkor_/article/details/53487133 前言: 作为谷歌在2013年为开发者提供的IDE环境工具Android St ...
- Android APK打包流程
简单build流程图 官网给了我们一张非常简单的编译.打包.apk生成内容以及签名的图片.图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容 ...
- android apk壳
壳对于有过pc端加解密经验的同学来说并不陌生,android世界中的壳也是相同的存在.看下图(exe = dex): 概念清楚罗,我们就说下:壳最本质的功能就是实现加载器.你看加壳后,系统是先执 ...
- eclipse将android项目生成apk并且给apk签名
转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...
- Android : apk签名的多种方法以及key的配置
方法一:使用Android SDK中的签名工具给apk签名: (1)Android源码的 build/target/product/security/ 目录下有 media.pk8.media.x50 ...
- [转]Android APK签名原理及方法
准备知识:数据摘要 这个知识点很好理解,百度百科即可,其实他也是一种算法,就是对一个数据源进行一个算法之后得到一个摘要,也叫作数据指纹,不同的数据源,数据指纹肯定不一样,就和人一样. 消息摘要算法(M ...
- Android apk签名方法介绍
还望支持个人博客站:http://www.enjoytoday.cn 参考博客:http://www.enjoytoday.cn/posts/203 为什么要签名 在介绍签名方法之前,首先我们来了解下 ...
- (转)在eclipse中将android项目生成apk并且给apk签名
转:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作目 ...
随机推荐
- Lightoj 1017 - Brush (III)
1017 - Brush (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Sam ...
- JavaScript 实现的 SHA1 散列
1.代码:/**** Secure Hash Algorithm (SHA1)* http://www.webtoolkit.info/***/ function SHA1 (msg) { ...
- MkDocs -- Project documentation with Markdown
/************************************************************************ * MkDocs -- Project docume ...
- 并不对劲的trie树
听上去像是破坏植物的暴力行为(并不). 可以快速查询某个字符串在某个字符串集中出现了几次,而且听上去比字符串哈希靠谱. 把整个字符串集建成树,边权是字符,对于字符串结尾的节点进行特殊标记. 这样一方面 ...
- 关于bitset
https://www.zybuluo.com/ysner/note/1327705 原理 \(bitset\)的原理是将一大堆值为\(0/1\)的数压成一个数. 操作 通过\(i>>x\ ...
- Cortex-M3 / M4 Hard Fault Handler (转载)
转自大伟的,感谢大伟的帮助调试:http://www.cnblogs.com/shangdawei/archive/2013/04/30/3052491.html http://blog.frankv ...
- get与post提交方式区别?
1.get <!--表单数据作为HTTP GET请求发送给action 规定的URL,并将数据附加在URL之后,由客户端直接发送给服务器.表单数据不能太长,也不能含有非ASCII码的字符--&g ...
- JSP中传递数据出现的乱码问题
1. <%@ page language="java" import="java.util.*" contentType="text/html; ...
- HDU1452:Happy 2004(积性函数)(因子和)
题意 给出\(x\),求\(2004^x\)的所有因子和 分析 \(2004=2*2*3*167\) 则\(2004^x\)=\(2^{2x}*3^x*167^x\) s[\(2004^x\)]=s[ ...
- bzoj 4720: [Noip2016]换教室【期望dp】
状压dp,设f[i][j][0/1]为前i个时间段换了j间教室的期望体力消耗,转移很好想(但是写起来好长= =) #include<iostream> #include<cstdio ...