ionic项目创建打包签名
1. 环境搭建
1.1 安装Node.js
使用node -v
查看Node.js版本
1.2 安装npm
使用npm -v
查看npm版本
1.3 安装ionic
使用npm install -g ionic
命令,全局安装最新版本的ionic
使用ionic -v
查看当前安装的ionic版本
1.4 安装cordova
使用npm install -g cordova
命令全局安装最新版本的cordova
使用cordova
查看当前安装的cordova版本
也可以使用
npm install -g cordova ionic
命令同时安装ionic和cordova。
2. 创建ionic项目
使用ionic start appName tabs
命令创建ionic项目,其中appName为应用名称。
3. ionic项目打包
3.1 打web包
使用ng build
命令。
3.2 打apk包
打npm包可以有以下几种方式:
3.2.1 使用ionic cordova build android
命令
打包成功后会将生成的apk路径显示在终端。
3.2.2 使用ionic cordova build android --prod --release
命令或者使用cordova build --release android
命令
打包成功后会将生成的apk路径显示在终端。
4. 生成签名文件
在终端使用如下命令生成签名文件。
keytool -genkey -v -keystore know_your_brew.keystore -alias know_your_brew.keystore -keyalg RSA -keysize 2048 -validity 10000
注意: 使用你应用的名字来替代know_your_brew,这个命令会生成一个新的文件,在本示例中为know_your_brew.keystore。
强调: 在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:
jarsigner: 找不到myapp.keystore的证书链。myapp.keystore必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。
keytool命令参数说明:
- -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
- -alias 产生别名
- -keyalg 指定密钥的算法
- -validity 指定创建的证书有效期多少天
- -keysize 指定密钥长度
5. 对apk进行签名
jarsigner -verbose -keystore myapp.keystore -signedjar myapp.apk platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk myapp.keystore
jarsigner命令参数说明:
- [-keystore <秘钥库位置>] 密钥库位置
- -signedjar [apkOut] 签名后的输出文件名
相关文章:

Java 常用对象-Date类和Calender类
2017-11-02 22:29:34 Date类:类 Date 表示特定的瞬间,精确到毫秒。 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实…

为你的水晶报表装载本地图片
本文为解答该贴所做:http://topic.csdn.net/u/20090524/15/911fd15a-32c6-4be9-9aa1-3ee95365e7e3.html 并没有什么新内容,主要是如何读取本地图片显示在报表中。 如果是CR XI及以上版本,可以用更简便的方法,参考:水晶…

asp.net断点续传技术
断点续传的原理 在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种。请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web server)…

Linux安装Nodejs
Linux安装Nodejs 阿里云镜像: https://npm.taobao.org/mirrors/node/ 选择所需版本,进行下载。 我这边下载的是:https://npm.taobao.org/mirrors/node/v8.2.1/node-v8.2.1-linux-x64.tar.gz 环境: linux 7.x 目录结构(…

jQuery-1.样式篇---选择器
jQuery选择器之id选择器 页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处理复杂选择过程与性能优化,更多专注业务逻辑…

CentOS 7 相关命令
Centos 7 相关命令 查看Linux内核/操作系统/CPU # uname -a查看系统位数是64位还是32位 # getconf LONG_BIT检验java是否安装成功 # java -version查询java的执行路径 # which java打开java环境变量的配置文件 # vi /etc/profile配置java环境变量后重新加载配置文件 …

51cto的初体验
注册该网站也有一段时间了,第一次来到这个网站是在一次无意间搜索某个问题的时候进来的,我有一个习惯,就是每次一遇到不懂的问题就会上网搜,看看大家都是怎么解决的,至少到现在用这种方法,我已经解决了不少…

Codeforces Round #550 (Div. 3)E. Median String
把字符串看作是26进制的数,从后往前翻译,那么就可以把两个串变成对应的26进制的数字,那么只要把两个数加起来除以二就得到中间的串对应的数了,同理再转化回来就行了。但是这样会有一个问题就是串的长度有2e5,26的2e5次…

window.print()前端实现打印功能
方法介绍 window.print()方法用于打印当前窗口的内容。 默认打印页面中body里的所有内容。 调用 print() 方法会产生一个打印预览弹框,让用户可以设置打印配置。 1. 打印方法 1.1 打印当前窗口内容 示例demo如下: <!DOCTYPE html> <html la…

.NET 4.0 Interop新特性ICustomQueryInterface (转载)
.NET 4.0 Interop新特性ICustomQueryInterface 在.NET Framework v4.0发布的新功能中,在名字空间System.Runtime.InteropServices新增加了一个叫做ICustomQueryInterface的Interface, 顾名思义,这个Interface的功能就是使得用户可以自己控制QueryInterf…
HTML5 3D旋转图片相册
H5旋转3D相册,鼠标放置暂停,图片灰度级为0,有放大效果。 该实例运用H5和CSS3动画效果,未用javascript。提高了本人对CSS3 新属性的了解及掌握。 完整代码如下: <!DOCTYPE html> <html lang"en">…

DHTML中style的display和visibility属性
DHTML中style的display和visibility属性 display是隐藏该对象,使该对象不占用页面排版空间。document.all("tr1").style.display"block"document.all("tr1").style.display"none" visibility只是在页面上看不见,…

多线程共享全局变量以及锁机制
多线程都是在同一个进程中运行的。因此在进程中的全局变量所有线程都是共享的,这就造成一个问题,因为线程执行的顺序是无序的,有可能会造成数据错误,为了解决这个问题, threading提供了一个lock类,这个类可…

HTML DOM Console对象
在开发过程中对程序进行测试,经常使用浏览器控制台输出相关信息,下面详细介绍console对象的相关方法。 Console 对象 提供了访问浏览器调试模式的信息到控制台 1. console.assert()方法 用法:该方法在第一个参数为 false 的情况下会在控制台…

禁止拖放对象文本被选择
禁止拖放对象文本被选择的方法: 1.ie中设置拖放对象的onselectstart返回false,在ff中设置样式MozUserSelect(css:-moz-user-select)为none。 这种方法只能禁止拖放对象本身被选择。 2. ie:document.selection.empty() ff:window.getSelection().removeAl…

线性时间选择问题——分治
问题:求一个n个数的列表中第K个最小的元素。这个数字被称为第K个顺序统计量。问题求解: //对数组元素data[lowhigh]进行分区操作,0号单元不用intpartion(intdata[],intlow,inthigh){ data[0]data[low]; intpivotkeydata[low]; while(low<hig…

谷歌浏览器打不开设置等页面
问题描述 谷歌浏览器打不开任何页面,设置页面也打不开。卸载重装不起作用。 解决方案 方案1:添加启动参数 右击谷歌浏览器快捷方式图标,打开【属性】,在【目标(T)】输入框中追加参数-no-sandbox,即在下图中箭头所指…

Spring注解@Value
本文参考自: https://blog.csdn.net/ryelqy/article/details/77453713 Value能让我们在java代码中使用property文件的属性,使用Value有两种形式: 1、Value("#{configProperties[t1.msgname]}") 2、Value("${t1.msgname}") 这两种形式࿰…

201621123055《JAVA程序设计》第七周学习总结
1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容。 答:GUI监听器:一个事件监听器对象负责处理一类事件 一类事件的每一种发生情况,分别由事件监听器对象中的一个方法来具体处理. 在事件源和…

SQL Server 中print Datetime类型问题
declaredatedatetimesetdate2010-1-1printdateadd(dd,1,date)输出:01 2 2010 12:00AM 输出的是2010年1月2日 上午12:00 咦?那我就纳闷了,我要的是2010年1月2日 上午00:00:00 后发现原来print会将打印的数据类型隐式转换成字符串,所以就输出:01 2 2010 12:00AM这样的结果 我们…

iis上实现虚拟目录
有时候项目中需要 将引用相同的文件 可以再iis上建立虚拟目录 (其实就是一个文件夹) 比如 temp文件夹在另外的站点上 可以通过虚拟目录 将其引用进来!

JavaScript判断对象是否为空对象或空数组
1. 判断一个变量是对象还是数组 首先判断一个变量是对象还是数组,不能使用typeof来判断,因为不管是对象还是数组,使用typeof得到的都是"object"。 可以使用Object.prototype.toString.call()方法。 function isObjOrArr(obj) {if …

python_2开发简单爬虫
2017年12月03日 16:43:01 独行侠的守望 阅读数:204 标签: python爬虫 更多个人分类: Python编辑版权声明:本文为博主原创文章,转载请注明文章链接。 https://blog.csdn.net/xiaoanzi123/article/details/78700863学习地…

Mac下安装Node.js
1> brew install node 2> 查看版本: node --version 学习传送门: http://www.imooc.com/learn/637 菜鸟学习: http://www.runoob.com/nodejs/nodejs-http-server.html 官网:https://nodejs.org/zh-cn/ 转载于:https://www.…

window对象提供的功能之窗口最大化
实现窗口最大化的基本思路是:首先打开一个“中转”页面,在该页面中用window.open方法打开一个最大化的窗口,并且在该窗口中将父窗口关闭。实例如下:ex3.html: 代码 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans…

Framework 4.0 新关键字dynamic 之我见(二)
Hi,大家好,随着大家对VS2010的深入了解,对dynamic已经是越来越了解了,何时该用,何时不用已经非常熟悉了,原本不打算再写下去的,但感觉还有点东西需要说说,就简单再说一下吧。 原先以…

JavaScript 数组排序及查找数组中最大值最小值方法
JavaScript 数组排序方法及查找最大值最小值方法1. sort()方法排序1.1 方法介绍1.2 语法:arr.sort([compareFunction])1.3 参数说明1.4 返回值: 排序后的数组。1.5 方法描述2. 最大值/最小值方法2.1 查找数组中的最大值2.1.1 Math.max.apply()方法语法&a…

35个必备的wordpress插件
博客一开始是自己写的小程序,但自己写程序实在太麻烦了,不想写,于是转成了bo-blog,用了几周,感觉还是不太理想,就又转换成了wordpress,这个博客程序也不是什么省油的灯,用起来也不是…

1042. 托普利兹矩阵
描述 “托普利兹矩阵”是指如果从左上角到右下角的同一条主斜线上每个元素都相等的矩阵. 给定一个M x N矩阵,判断是否为“托普利兹矩阵”. matrix 是一个二维整数数组.matrix 的行列范围都为 [1, 20].matrix[i][j] 的整数取值范围为[0, 99].样例 样例 1: 输入: matr…

git控制台指令
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可…