您的位置:首页 > 其它

ionic 热更新插件cordova-hot-code-push的使用

2016-08-30 10:15 477 查看
先安装插件,步骤如下
1、在APP目录下运行cordova plugin add cordova-hot-code-push-plugin

2、在APP目录下运行cordova plugin add cordova-hot-code-push-local-dev-addon

3、安装CLI:npm install -g cordova-hot-code-push-cli

在这一步的时候如果出现安装错误,可用以下办法解决:

A、安装python2.7,并将C:\Python27加入环境变量

B、安装VS2013_RTM_DskExp_CHS

开始配置

4、安装完成后运行cordova-hcp build ,之后www文件夹下面出现chcp.json以及chcp.manifest两个文件

A、chcp.json文件内容说明

{

  "autogenerated": true,

  "release": "2016.08.29-15.52.14",  //版本号

  "content_url": "http://www.123.com/www/",//WWW文件夹所在远程地址

  "update": "now"//分三种情况
// start - app启动时安装更新. 默认值.
// resume - app从后台切换过来的时候安装更新.
// now - web内容下载完毕即安装更新.
}

该文件每次运行cordova-hcp build 都会自动重新生成,为了方便,可以在APP项目的根目录下添加一个模板文件cordova-hcp.json,内容如下:

{

  "autogenerated": true,

  "release": "2016.08.29-16.52.27",

  "content_url": "http://www.123.com/www/",

  "update": "start"

}

B、chcp.manifest为文件清单

5、在APP项目的根目录下会生成一个.chcpenv的文件,打开该文件,编辑更新内容远程地址以及远程配置文件地址,如下:

{

  "content_url": "http://www.123.com/www/",

  "config_url": "http://www.123.com/www/chcp.json"

}

测试运行

6、打包运行APP,如ionic run android

7、随便更改一个APP内的页面内容,然后运行cordova-hcp build 生成最新的配置,再将整个WWW目录下的所有文件(包含chcp.json及chcp.manifest两个文件)复制到chcp.json内配置好的远程地址下。本例中是复制到远程IIS的WWW目录下

8、重新打开APP(记住要打开两次后才能看到效果),看看刚才的更新效果吧。

IOS下的配置



IOS的配置可能会因为插件版本的不同而不同。以下以1.4版本为例:

1、编译的时候会报‘_-swift.h’file not found 的错误,打开HCPLDPlugin.h文件,将头部#import "_-Swift.h"改成

#import "百家通云商城-Swift.h"  //这里的“百家通云商城”即为你的APP的名字,例如:

#ifdef __OBJC__
#import "TestProject-Swift.h"
#endif


2、编译时如果报unknown type name 'SocketIOClient'错误,则需要确认#import "百家通云商城-Swift.h"这一行是否在HCPLDPlugin.h文件头部

3、在info.plist中加入

<key>NSMainNibFile~ipad</key>
<string></string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>

4、Embedded content contains swift code设为YES

5、Embed Asset Packs in Product Bundle设为YES

否则在真机运行APP时会闪退,模拟器调试的时候则为出现

libc++abi.dylib: terminating with uncaught exception of type NSException*

的错误

闪退解决办法2:

在XCODE下--》WINDOW--》project--》你的项目名称-->DELETE derived data
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息