ionic app打包和签名
ionic app打包和签名
1、首先在项目根目录执行 ionic platform add android 生成Android平台。
2、配置应用签名:在根目录下执行以下命令
keytool -genkey -v -keystore myApp.keystore -alias myApp -keyalg RSA -keysize 2048 -validity 20000
命令说明:
-genkey 产生密钥
-alias pbnEoC.keystore 别名 demo.keystore
-keyalg RSA 使用RSA算法对签名加密
-validity 20000 有效期限2000天
keysize: 大小
-keystore pbnEoC.keystore 证书的别名
结果如下:会在根目录生成一个myApp.keystore的文件

3、使用build命令编译一个应用的发布版本, 在platforms\android\build\outputs\apk下找到android-release-unsigned.apk文件,把它移动到根目录下(跟myApp.keystore同目录)。以防签名的时候找不到jar文件
ionic build --release android
4、签名应用文件:把已经生成的 android-release-unsigned.apk 文件移到项目根目录下,不然可能会报错"无法打开 jar 文件: android-release-unsigned.apk"。在终端命令窗口进入到项目根目录。执行以下命令:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore android-release-unsigned.apk myApp
过程会需要一点时间,期间会提示输入keystore的密码密钥,命令会修改apk文件并对其进行签名。
命令说明:
Jarsigner 是工具名称
-verbose 表示将签名过程中的详细信息打印出来,显示在控制台窗口中
-keystore myApp.keystore 之前生成的证书 ,表示签名所使用的数字证书所在位置/名字(同目录)
-signedjar (后面的路径是你要签名apk的路径) 表示给Apk工程目录下的 android-release-unsigned.apk 文件签名
myApp 表示证书的别名,对应于生成数字证书时-alias参数后面的名称
5、验证apk是否签名成功:出现一堆信息
jarsigner -verify -verbose -certs android-release-unsigned.apk
6、查看签名的信息:
keytool -printcert -file META-INF/*.RSA
7、可选择执行以下命令:优化apk文件-----减少在设备上占用的空间和内存。我们使用zipalign工具,它使用签名后的APK文件生成一个优化后的APK版本,用于应用上传。
添加环境变量:
path:D:\AndroidSDK\android-sdk-windows\build-tools\23.0.3 在项目根目录下执行命令:
jarsigner -verify -verbose -certs android-release-unsigned.apk
成功的显示:

ionic app打包和签名的更多相关文章
- cordova app打包apk签名
首先执行:ionic cordova build android --prod --release,执行完会在以下目录生成apk文件( --prod 用以压缩) 然后使用keytool生成keysto ...
- 关于ionic app $http.get()无法请求,导致页面没有数据的问题
ionic app 打包后在真机上运行,无法用正常使用http.get(),这种情况被称为“白名单”,解决方法:切换到项目根目录,执行命令:cordova plugin add cordova-plu ...
- ionic安卓打包apk--安卓签名
上周项目上线,在网上看了看打包的博客,感觉不是很清晰我自己来总结下 首先,我们在项目的根目录下 build android apk 的时候执行的命令一定要是 ionic build android - ...
- 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站
自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...
- Gradle实现自动打包,签名,自定义apk文件名
Gradle实现自动打包,签名,自定义apk文件名 什么是签名,签名有什么用 Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行 ...
- Ionic app 通知在Moto 360 Watch上显示通知(2)
在前一篇文章中,我们已经将Wtach的环境测试成功,下面进入我们自己消息的接收. 1.安装JPush插件在我们的App中,这个具体步骤可以参考 Ionic 安装JPush过程 2.在App上的登录模块 ...
- Ionic app升级插件开发
终于走到了写插件的这个地方了,插件的过程: 1.安装plugman插件,管理我们的程序 npm install -g plugman 2.创建插件项目appUpgrade,cd 到你的目标目录下,执行 ...
- ionic项目打包+部署
环境: 1.ionic 2.angular-cli 开发 1.CTRL C + CTRL V 2.图片路径的问题 使用‘assets/xxxxx.jpg’,而不使用‘../../assets/xxx ...
- ActiveX控件打包、签名、嵌入详解
ActiveX控件打包.签名.嵌入详解 前言 在我们的一个项目中,使用到了大华网络监控摄像头枪机,网络上下载了其ActiveX插件,但是发现其所提供的类库没有打包处理.这就导致我们每次给用户安装的时候 ...
随机推荐
- PHP7CMS 无条件前台GETSHELL
PHP7CMS 无条件前台GETSHELL Version:2018-10-09 //最新版中以修复此漏洞 这个漏洞很简单,如果作者在写代码的时候考虑到一点点安全方面,其实都可以避免的. 01 0 ...
- [Swift]LeetCode447. 回旋镖的数量 | Number of Boomerangs
Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...
- [Swift]LeetCode799. 香槟塔 | Champagne Tower
We stack glasses in a pyramid, where the first row has 1 glass, the second row has 2 glasses, and so ...
- 简单python程序练习
1.打印※花矩形 i = 1 while i<=5: j = 1 while j <=5: print("*",end="") #end=" ...
- spark System memory must be at least
运行 ScalaSpark 程序的时候出现错误: System memory * must be at least *.Please increase heap size using the --dr ...
- 自定义圆形的ProgressBar
1.自定义圆形的ProgressBar 效果图: 圆形ProgressBar的样式主要有以下几个,我们这里以progressBarStyleLarge为例进行样式的修改,其他的类似. <Prog ...
- SignalR学习笔记(四) 性能优化
限制消息发送次数 这种方式在学习笔记(二)- 高并发应用中介绍过,在客户端和服务器端使用定时器来减少消息发送的次数 减少消息数据的大小 服务器端,可以使用JsonIgnore, 来忽略不需要序列化的 ...
- [linux]孤儿进程与僵尸进程
转载自:http://www.cnblogs.com/Anker/p/3271773.html 一.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两 ...
- 【漫画】以后在有面试官问你平衡(AVL)树,你就把这篇文章扔给他。
西天取经的路上,一样上演着编程的乐趣..... 1.若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值. 2.若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值. 3.它的左右子树 ...
- 从无到有-在create-react-app基础上接入react-router、redux-saga
搭建项目框架 新建项目 执行如下代码,用create-react-app来建立项目的基础框架,然后安装需要用到的依赖. $ npx create-react-app my-test-project $ ...