CodePush 阿里云私有化部署(code-push-serv
CodePush 是一个微软开发的云服务器。通过它,开发者可以直接在用户的设备上部署手机应用更新。考虑到代码安全、更新速度等,我们需要搭建自己的 code-push-server 服务器。
阿里云Ubuntu 16.04 64位 + code-push-server
一、搭建服务端环境
1、检查服务器是否安装了 nodejs 和 npm,如果没有,自行安装
$ ssh root@ip #登录服务器
$ node -v #v10.12.0
$ npm -v #6.4.1
2、安装 MySQL
$ apt-get install mysql-server
根据弹出提示,设置数据库密码
3、安装 code-push-server,初始化数据库
$ npm install code-push-server@latest -g
# 初始化数据库 会在数据库中创建一个 database 名字是 codepush
$ code-push-server-db init --dbhost localhost --dbuser root --dbpassword password
4、修改 config.js 配置文件
$ vi /usr/lib/node_modules/code-push-server/config/config.js
# npm ls -g --depth=0 可查看安装路径
1).修改数据库的配置信息:
2).修改 local 配置信息:
3).修改 jwt 对应的配置信息:
打开链接 https://www.grc.com/passwords.htm ,生成一个63 random alpha-numeric characters,填到 tokenSecret
5、pm2 启动
$ pm2 start code-push-server #pm2 启动
6、codepush.itguliang.com 域名解析,nginx 配置
server {
listen 80;
server_name codepush.itguliang.com;
location / {
proxy_pass http://127.0.0.1:3000/;
}
}
二、客户端测试
客户端运行:
$ code-push login http://codepush.itguliang.com
会自动打开登陆页面,默认用户名密码:admin 123456
登陆后获取token
复制 token 到命令行即可
三、Cordova集成
插件:cordova-plugin-code-push
地址:https://github.com/Microsoft/cordova-plugin-code-push
1、cordova 项目创建
$ cordova create codePushDemo com.example.codePushDemo CodePushDemo
$ cd codePushDemo
$ cordova platform add android
2、cordova 项目安装插件
$ cordova plugin add cordova-plugin-code-push@latest
$ cordova plugin add cordova-plugin-whitelist
3、修改 config.xml,添加 CodePushDeploymentKey、CodePushServerUrl
# ${CodePushServerUrl}
# 例:http://codepush.itguliang.com/ 或 http://XXX.XXX.XXX.XXX:3000/
<platform name="android">
<preference name="CodePushDeploymentKey" value="${CodePushDeploymentKey}" />
<preference name="CodePushServerUrl" value="${CodePushServerUrl}" />
</platform>
<platform name="ios">
<preference name="CodePushDeploymentKey" value="${CodePushDeploymentKey}" />
<preference name="CodePushServerUrl" value="${CodePushServerUrl}" />
</platform>
4、修改 config.xml
<access origin="https://codepush.appcenter.ms" />
<access origin="https://codepush.blob.core.windows.net" />
<access origin="https://codepushupdates.azureedge.net" />
# 如果设置了 <access origin="*" /> 请忽略
5、修改 www/index.html, 添加 meta
<meta http-equiv="Content-Security-Policy" content="default-src ${code-push-server-address} 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;" />
# ${code-push-server-address}
# 例:http://codepush.itguliang.com 或 http://XXX.XXX.XXX.XXX
6、修改 www/js/index.js
var app = {
...
onDeviceReady: function() {
window.codePush.sync(null, {
updateDialog: true,
installMode: InstallMode.IMMEDIATE
});
...
},
...
};
app.initialize();
7、发布更新
$ cordova build Android #打包apk 手机安装
$ code-push release-cordova test-android android -d "Staging" --des "描述" #发布更新
$ code-push deployment ls test-android -k #查看发布状态
修改 index.html
<!-- 增加 -->
<div>
<p >--------这是--------</p>
<p >codepush.itguliang.com</p>
<p >私有化部署更新过来的内容</p>
</div>
重新 build、codepush 发布后,重启应用,即可查看效果: