§ 版本服务部署说明


版本服务器jar 下载地址

链接: https://pan.baidu.com/s/1TAowhfK-xaSnGr1tY3cM2Q  密码: w5t2
1

§ 1. 版本服务启动

  • 在linux服务器上创建版本服务的文件夹(路径自由指定):
mkdir /home/fox/fox-publitity
1
  • 将下载好的 fox-publitiy.zip 上传到该路径下并执行解压命令
cd /home/fox/fox-publitity
unzip fox-publitity.zip
1
2
  • 解压后的文件包含:
update(文件夹)
fox-publitiy-1.0.0.jar(可执行jar包)
startup.sh(启动服务脚本)
stop.sh(关闭服务脚本)
1
2
3
4
  • 服务启动,执行启动脚本
sh startup.sh
1
  • 服务关闭,执行关闭脚本
sh stop.sh
1
  • 启动后根据服务器IP+PORT访问,服务默认端口为8898,若想更换端口,可以修改startup.sh脚本内容,在java -jar命令后追加 --server.port属性,例如:
#!/bin/bash 
java -jar  -Xms256m -Xmx512m fox-publitiy-1.0.0.jar --server.port=8081 > fox-publitiy.log 2>& 1 &
1
2
  • 如果在startup.sh指定了端口号,要同时修改关闭脚本stop.sh中的内容,使关闭的端口与startup.sh中的保持一致:
#! /bin/bash
kill -9 $(netstat -nlp | grep :8081 | awk '{print $7}' | awk -F"/" '{ print $1 }')
1
2

§ 2.资源部署位置

  • 在jar包文件的同级目录下新增 update目录,如下
.
|-- fox-publitiy-1.0.0.jar
|-- fox-publitiy.log
|-- startup.sh
|-- stop.sh
`-- update
    `-- app
        |-- configuration  配置文件
        |   `-- client.properties
        `-- workspace   工程资源
              `--fox
                |-- index.html
                `-- static

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • configuartion 文件夹中存放服务端配置文件
  • workspace文件夹中存放工程资源

§ 3.客户端配置

客户端整体更新流程

graph LR
A(外壳启动) -->B[读取配置]

B -->|选取一个服务地址| C{检测服务连通性}
C -->|未联通| B
C -->|联通| D{检查外壳版本}
D -->|存在更新| F[重启外壳]
D -->|不存在更新| E[检查H5资源]
E -->|存在新版本时进行更新| G(进入主页面)
1
2
3
4
5
6
7
8
9

启动更新流程

§ 3.1 Android 外壳配置

  • 打开 configuration/client.properties
  • 更改版本服务器地址 version/address,修改版本服务器地址为版本服务的服务器IP+PORT。
  • 更改 version/updateTasks,指定更新目录。

需要修改的主要参数如下(其余已省略)

#工程名
web/mainApp=fox
...
#是否启用更新
version/updateEnabled=true
#版本服务器地址 修改为服务器IP+PORT
version/address=http://119.45.42.151:8898
...
#更新任务,由服务器上的资源更新到本地资源
#参数含义:[服务器配置文件路径,客户端本地配置文件保存路径(本地相对路径),是否需要重启(非必须参数,不填写默认为false)];
#多个更新任务可以用 ; 分隔
#fox为此工程名,是一种简写,写法等同于 [update/app/workspace/fox,workspace/fox]
version/updateTasks =  [update/app/configuration/client.properties,configuration/client.properties,true];fox

#APK更新任务[服务器APK目录,客户端APK本地目录] 
#服务器上的APK和客户端的APK打包证书需要一致
version/apkUpdateTasks=[update/app/apk,version/apk]
...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

§ 3.2 IOS 外壳配置

§ 3.3 PC外壳配置

  • 打开 configuration/client.properties
  • 更改版本服务器地址 version/address,修改版本服务器地址为版本服务的服务器IP+PORT。
  • 更改 version/updateTasks,指定更新目录。
  • 更改 version/apkUpdateTasks,指定更新目录

需要修改的主要参数如下(其余已省略)

#工程名
web/mainApp=fox
...
#是否启用更新
version/updateEnabled=true
#版本服务器地址 修改为服务器IP+PORT
version/address=http://119.45.42.151:8898
...
#更新任务,由服务器上的资源更新到本地资源
#参数含义:[服务器配置文件路径,客户端本地配置文件保存路径(本地相对路径),是否需要重启(非必须参数,不填写默认为false)];
#多个更新任务可以用 ; 分隔
#fox为此工程名,是一种简写,写法等同于 [update/app/workspace/fox,workspace/fox]
version/updateTasks =  [update/app/configuration/client.properties,configuration/client.properties,true];fox

#APP外壳更新任务[服务器APP目录,客户端APP本地临时目录] 
version/apkUpdateTasks=[update/app/apk,version/apk]
...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

PC外壳APP包生成命令

npm run pack:win
1

app包生成目录为dist/apk

  • APK详细信息
  • 参数说明
字段名 字段含义
name 工程名
version 当前版本号
chunks 片段文件信息
index 获取需要更新的最大索引
immediately 是否及时更新
  • 判断是否需要安装:只有当index的值等于chunks的长度减一,并且immediately的值为true,才可以安装。
{"name":"fox","version":"1.0.9","chunks":[{"name":"update_chunk_0","md5":"b873d091487cd02ed3722589cc83b98f"},{"name":"update_chunk_1","md5":"84ffc4e60879850b5a26c192ca4a0c1e"},{"name":"update_chunk_2","md5":"f548364edcc414a56c1e80dbc579fc02"},{"name":"update_chunk_3","md5":"ca91ce82fe84fea783ecdadb25a4bb1e"},{"name":"update_chunk_4","md5":"8d2445c821aca6ffa1b80a2dd56eba5f"},{"name":"update_chunk_5","md5":"d5abac5170a8dd7871dd92e679812385"},{"name":"update_chunk_6","md5":"0375a5c22847131f4cf64e3f823c028d"}],
"index":6,"immediately":true,"updaters":{"darwin":"update-darwin.sh","linux":"update-linux.sh","win32":"update-win32.bat"}}

1
2
3

特别提醒:1. 如果只需要下载部分片段或者延迟下载时。可以修改index的值,immediately的值为true/false, 此操作不会进行安装。2. 如果需要下载并安装所有片段,则需要将index的值设置为chunks的长度减一,并且immediately的值为true.

  • 场景一: 项目组需要三天内分三次更新外壳,在第三天投入使用,文件片段的长度为6,此时index和immediately的值该如何设置? 回答: 1. 第一天:index等于2,immediately等于false; 2. 第二天:index等于4,immediately等于false;
    3. 第三天:index等于5,immediately等于true。 ( 此操作可以避免一日内的流量使用过大。)

  • 场景二 :项目组需要立即更新外壳,两天后投入使用,文件片段的长度为6,此时index和immediately的值该如何设置?
    回答:index等于5,immediately等于false。

  • 场景三:项目组需要立即更新外壳,并投入使用,文件片段的长度为6,此时index和immediately的值该如何设置?
    回答:index等于5,immediately等于true。

§ 3.4 Windows外壳配置

  • 打开ShellConfig配置文件

  • 将是否更新选项设置为updateEnable=true

  • 打开更新配置文件UpdateConfig.ini

  • 更改版本服务器地址Address=http://119.45.42.151:8898,100

  • 需要修改的参数如下 ShellConfig配置文件:

#主窗口标题
mainWindowTitle=远程银行中心坐席工作台
#访问资源地址
baseUrl=local://workspace/index.html
#是否需要更新
updateEnable=true
1
2
3
4
5
6

UpdateConfig配置文件:

[update]
#配置更新任务,如图所示,目前更新任务配置为winshell(外壳更新)和web(前端更新),如需其他更新任务,可仿照现有更新任务在下方添加新的更新任务
TaskName=shell,web
#更新地址
Address=http://119.45.42.151:8898,100
[shell]
#配置更新文件在服务器上的路径,该路径是服务器上jar包所在路径的相对路径
ServerPath=update/shell
[web]
#配置更新文件的安装路径,该路径是外壳根目录的相对路径。前端资源安装在外壳根目录下workspace文件夹中
InstallDir=workspace
#·配置更新文件在服务器上的路径,该路径是服务器上jar包所在路径的相对路径。
ServerPath=update/web
1
2
3
4
5
6
7
8
9
10
11
12
13

注意:若外壳为debug版本需手动点击Monkey.Update.exe进行更新

最后更新于: 2/17/2023, 10:09:28 AM