Java

CodePush 阿里云私有化部署(code-push-serv

2019-10-30  本文已影响0人  IT姑凉

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 发布后,重启应用,即可查看效果:

上一篇下一篇

猜你喜欢

热点阅读