ionic3 热更新发布步骤记录
1.安装基本框架
npm install -g ionic@latest
npm install -g cordova ionic
验证版本号
ionic –version
cordova -version
2.新建ionic项目
ionic start myapp 会显示选项列表
tabs:创建一个选项卡项目
blank:创建一个空白项目
sidemenu:创建一个侧边菜单项目
super: 创建一个预制的完整项目,提供ionic开发最佳实践
conference:创建一个展示真是应用的项目
tutorial:创建一个基于ionic文档的教程项目
aws: 创建一个移动集成器启动项目
任意选择一个新建即可
3.进入项目文件夹
cd myapp
执行下面命令可以预览项目
ionic serve
正常显示后可以关掉服务Ctrl+C,此步骤只是保证ionic新建项目成功
4.ios目前已不支持热更新,所以只对Android平台进行设置 设置Android平台
ionic cordova platform add android
设置安卓版本需修改下面文件内容
platforms/android/project.properties
和platforms/android/CordovaLib/project.properties
中的target=“你有的sdk版本” 安装热更新插件
ionic cordova plugin add cordova-hot-code-push-plugin
ionic cordova plugin add cordova-hot-code-push-local-dev-addon
npm install -g cordova-hot-code-push-cli
5.在config.xml配置文件中加入下面节点
<chcp>
<config-file url="http://192.168.1.203:8121/chcp.json" />
<native-interface version="1" />
</chcp>
第一个子节点是需要发布在iis上的文件地址
第二个子节点是当前版本号
还有其它配置此处不再罗列
6.新开一个终端执行下面命令
cordova-hcp server
如果能够正常输出类似
Running server
Checking: /ionic/myapp/www/
local_url http://localhost:31284
Warning: .chcpignore does not exist.
Build 2017.10.27-10.17.48 created in ionic/myapp/www
cordova-hcp local server available at: http://localhost:31284
cordova-hcp public server available at: https://5027caf9.ngrok.com
检查/项目名称/www 路径下 有chcp.json和chcp.manifest表示热更新服务启动正常
7.在项目根目录下新建模板 cordova-hcp.json
{
"content_url": "http://192.168.31.62:8121",
"autogenerated": true,
"update": "now"
}
以后发布时只需执行
cordova-hcp build命令,就可以把模板内容替换到chcp.json文件内,因为每次更新或者发布app都会使热更新服务重新生成chcp.json文件内容
8.构建iis,路径指向/项目名称/www 文件夹,也可以把www文件夹部署在你指定的位置。检查chcp.json文件是否能访问,若不能访问
针对iis7+
在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-”新类型”,添加一个文件类型:
关联扩展名:.json
内容类型(MIME):application/x-javascript
9.生成apk
ionic cordova build android
此时热更新服务不能停止,一个终端执保持热更新服务,另一个终端执行其它命令
生成后执行
cordova-hcp build 复制模板文件
然后通过iis访问地址,检查页面显示是否正常,json文件是否可以访问,json文件内的ip地址是否是iis的发布地址
在手机上安装此apk
10.对项目界面或者功能进行修改
然后对配置文件config.xml的chcp节点的版本号进行修改
<native-interface version="2" />
重新生成apk
ionic cordova build android
通过iis访问检查页面和功能是否修改
执行 cordova-hcp build 然后检查iis上的json文件是否修改
关掉手机上原来的程序,重新打开程序,可以看到页面或者功能已变更。有时候更新会有延迟。
琐碎的资料
1. http://localhost:8100/ionic-lab 可以看到模拟器
2. 新建模块命令 ionic g page login
3. 新建服务命令 ionic g provider MyData
4. 在虚拟机上执行命令 ionic cordova emulate android -l -c
ionic3 热更新发布步骤记录的更多相关文章
- ElasticSearch5.0+版本分词热更新实践记录
前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...
- Android代码混淆及项目发布方法记录
Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理 ...
- 深入理解xLua热更新原理
热更新简介 热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁.热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新 ...
- 使用Fiddler劫持网络资源为前端开发助力(示例:Dynamic CRM 表单开发 也能热更新? )
背景: 使用过vue开发的童鞋应该都知道,在开发vue项目的过程中,有个叫"热更新"的功能特别爽,在传统html开发到初次接触vue时,才发现原来前端开发可以这么香.热更新的表现形 ...
- 【笔记】Nginx热更新相关知识
(以下学习笔记内容均摘自参考链接,仅供个人查阅) 1.inotify文件系统监控特性 Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如 ...
- Ionic APP 热更新 之 产品发布状态下的热更新搭建,去local-dev-addon插件
上一篇,我们介绍了在本地开发环境下的ionic项目热更新测试, 本文,我们将详细说明如何在去掉cordova-hot-code-push-local-dev-addon插件的情况下,实现热更新. 使用 ...
- 安卓热更新之Nuwa实现步骤
安卓热更新之Nuwa实现步骤 最近热更新热修复的功能在安卓应用上越发火热,终于我的产品也提出了相应的需求. 经过两天的研究,搞定了这个功能,在这里还要多谢大神们的博客,大神们的原理分析很到位,不过对于 ...
- ionic3应用的Android打包签名发布步骤
版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的ionic应用开发结束之后,就要开始上线到应用市场,那么Android的发布步骤具体是怎么样的呢? 1)编译 运行命令行: ionic c ...
- Unity官方发布热更新方案性能对照
孙广东 2016.3.11 Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda • 什么是热更新 • 为何要热更新 • 怎样在iOS 上对 ...
随机推荐
- yii框架通过http协议获取地址栏中的内容
//创建一个控制器 <?php namespace frontend\controllers; use frontend\models\Zhuce; use Yii; use yii\web\C ...
- php添加pdo_mysql.so的扩展
1. 首先进入你下载的php的安装包里找到pdo_mysql文件夹. /usr/local/php-/ext/pdo_mysql ps:有些教程说从http://pecl.php.net/这个网站上下 ...
- 【Oracle】【8】大批量update某个字段
正文: 需实现:将A表的某个字段的值复制到B表中 我们一般会这样写:UPDATE B SET B.NAME = (SELECT A.NAME FROM A WHERE A.NO = B.NO) 出现的 ...
- node基础知识-常用node命令
node中js的组成部分:ECMAScript核心+全局成员+模块系统成员 浏览器中的js组成部分:ECMAScripts核心+BOM+DOM 常用node命令 cmd中进入REPL环境:直接输入no ...
- 八大排序算法——插入排序(动图演示 思路分析 实例代码java 复杂度分析)
一.动图演示 二.思路分析 例如从小到大排序: 1. 从第二位开始遍历, 2. 当前数(第一趟是第二位数)与前面的数依次比较,如果前面的数大于当前数,则将这个数放在当前数的位置上,当前数的下标-1 ...
- two week summary
from collections import Iteratorfrom collections import Iterabl dic = {'a':"a","91a&q ...
- 学习Linux系统中命令的简单方法
如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中“一切皆文件”概念虽然说是没有错,是对的.但是 ...
- python全栈开发笔记---------数据类型---字典方法
def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...
- 使用md5加密算法完成简单的登录和注册功能
原理: 登录:后端controller层获取到客户的密码,通过下面代码:new Sha256Hash(pwd).toHex();将密码转换成md5散列,生成一个新的字符串与数据库的值进行比对,根据不同 ...
- 有关Java垃圾回收的几个问题
1.Java垃圾回收有什么目的?什么时候进行垃圾回收? 答:垃圾回收的目的是识别并丢弃应用中不再使用的对象以释放和重用资源. 2.System.gc()和Runtime.gc()会做什么事情? 答:这 ...