在做ionic APP开发时,在本地经过验证和调试,已解决ionic热更新问题。特记录下来。
表述如果有不当之处,欢迎指出,共同学习。
此次主要是做热更新,暂时还没做外壳更新。
安装Cordova Hot Code Push
ionic cordova plugin add cordova-hot-code-push-plugin
Cordova Hot Code Push文档参考 Cordova Hot Code Push
安装cordova Hot Code Push Cli
npm install -g cordova-hot-code-push-cli
Cordova Hot Code Push Cli 文档参考 Cordova Hot Code Push Cli
配置Platform
ionic cordova platform add android
ionic cordova platform add ios
配置 cordova hcp模板
在根目录下执行下面命令(tpb目录下)
cordova-hcp init
用于动态生成chcp.json和chcp.manifest文件的模板(不用每次手动更改chcp.json和chcp.manifest)
-
可以暂时选择只配置下面三个选项
...
Enter project name: TopBss
Update method(required): resume
Enter full URL: 远程域名地址/updates
...
Update method(required)有三种方式: now,start,resume
远程地址用来放app build后的www内部的所有文件
-
生成后的cordova-hcp.json文件(在根目录中),并添加ios_identifier和android_identifier(config.xml中对应的ID和android-packageName)
{
"name": "TopBss",
"ios_identifier": ID,
"android_identifier": android-packageName,
"update": "start",
"content_url": "远程域名地址/updates"
}
配置APP的config.xml
<chcp>
<config-file url="远程域名地址/updates/chcp.json" />
<auto-download enabled="true" />
<auto-install enabled="true" />
</chcp>
- chcp.json 本地app和远程的chcp.json中的release进行对比,如果不一致则会进行下载更新
- auto-download 设置为true时,则为自动下载远程需要更新的文件
- auto-install 设置为true时,则为自动安装
修改完后,重新build APP,并重新生成chcp.json和chcp.manifest(生成的两个文件在www文件夹中)
ionic cordova build android --prod --release
(ios则执行 ionic cordova build ios --prod --release)
cordova-hcp build
将www内的所有文件发布到远程服务器。
PS:
- 此次做的热更新主要是选择app从后台切换过来的时候安装更新。每次版本更新,都要执行一次cordova-hcp build,并将WWW内的文件传到服务器上。
- config.xml和cordova-hcp.json中的服务器地址需要自己开个服务器存放www内的文件。
使用Cordova Hot Code Push进行Ionic App热更新 参考网址