upgrade-center.md 7.2 KB
Newer Older
1
## App升级中心 uni-upgrade-center
Q
qiang 已提交
2 3 4

### 概述

5 6 7
App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包括
- Android、iOS的完整App安装包升级和wgt资源包增量更新
- 后台管理系统,用于发布新版、设置升级策略
Q
qiang 已提交
8

9
> 如果需要初次发布,而不是升级,另见产品[uni-portal 统一发布页](uni-portal.md)
Q
qiang 已提交
10

11
本产品具有如下特征:
Q
qiang 已提交
12

13
- 开源、免费。由于uniCloud阿里云版目前免费,包括服务器和cdn均免费。
Q
qiang 已提交
14

15
- 云端基于 [uniCloud](https://uniapp.dcloud.net.cn/uniCloud/) 实现。后台管理是 [uni-admin](https://uniapp.dcloud.net.cn/uniCloud/admin.html) 框架的插件。
Q
qiang 已提交
16

17
- 数据库遵循 [opendb](https://uniapp.dcloud.net.cn/uniCloud/opendb.html) 规范
Q
qiang 已提交
18 19 20

### 为什么需要升级中心?

21
每个App开发者都要开发升级功能,这是巨大的社会资料浪费。DCloud推出 uni-upgrade-center,让应用开发更轻松、高效,让开发者专注于自己的业务。
Q
qiang 已提交
22 23 24 25 26 27 28

### 使用

升级中心分为两个部分:`uni-upgrade-center Admin管理后台``uni-upgrade-center-app前台检测更新`

#### uni-upgrade-center Admin 管理后台

29 30
> uni-admin 1.9.3+。在应用管理新增一个应用之后,即可在 `App升级中心` 发布该应用的版本

Q
qiang 已提交
31 32 33
负责发布新版和管理历史版本的上下线。

<div align="left">
D
DCloud_LXH 已提交
34
	<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/c80f143d-a05b-493b-9db0-e87398a180b8.png" alt="发布完成页面" width="800"></img>
Q
qiang 已提交
35 36 37 38
</div>

提供了如下功能:

雪洛's avatar
雪洛 已提交
39
- 云储存安装包CDN加速,使安装包下载的更快、更稳定
Q
qiang 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52

- 应用管理,对 App 的信息记录和应用版本管理

- 版本管理,可以发布新版,也可方便直观的对当前 App 历史版本以及线上发行版本进行查看、编辑和删除操作

- 版本发布信息管理,包括 更新标题,更新内容,版本号,静默更新,强制更新,灵活上线发行 的设置和修改

- 原生 App 安装包,发布 Apk 更新,用于 App 的整包更新,可设置是否强制更新

- wgt 资源包,发布 wgt 更新,用于 App 的热更新,可设置是否强制更新,静默更新

- App 管理列表及 App 版本记录列表搜索

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
**版本管理**

1. 在版本管理list的右上角点击`发布新版`,可以发布`原生App安装包``wgt资源包`。在左上角点击`下拉列表`,可以切换展示应用。

<div align="center">
<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/442e84e7-e7f3-4d27-9c98-45568e5db835.png" width="800"></img>
</div>

- 发布原生App安装包
	1. 在上传安装包界面填写此次发版信息

	<div align="center" >
	<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/6368e998-8d98-4a0c-9de9-da35433a5e35.jpg" width="600"></img>
	</div>

  1. `Android应用市场`
		- 此处会与 `新增应用` 时填写的 `Android应用市场` 信息保持同步。当在应用管理修改应用信息时,这里也会修改
		- 启用商店:当勾选某一商店启用时,在 `upgrade-center-app` 端会检测手机上是否有该应用市场
    		- 如果有,则会跳转至该应用商店进行 App 升级
    		- 如果都跳转失败,最后会使用填写的 `下载链接` 下载 apk 安装包升级
		- 优先级:检查更新时,按照优先级从大到小依次尝试跳转商店

	1. `下载链接/AppStore`
		- 可以选择手动上传一个文件到 `云存储`,会自动将地址填入该项
		- 也可以手动填写一个地址,就可以不用再上传文件
		- 如果是发布`苹果`版本,包地址则为 应用在`AppStore的链接`
		
	2. `强制更新`
		- 如果使用强制更新,App端接收到该字段后,App升级弹出框不可取消
		
	4. `上线发行`
		- 可设置当前包是否上线发行,只有已上线才会进行更新检测
		- 同时只可有一个线上发行版,线上发行不可更设为下线。未上线可以设为上线发行并自动替换当前线上发行版
		- 修改当前包为上线发行,自动替换当前线上发行版

	**注:版本号请填写以`.`分隔字符串,例如:`0.0.1`**
- 发布wgt资源包
	1. 大部分配置与发布 `原生App安装包` 一致

	<div align="center">
	<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/ec916cde-0d0e-4bf3-a735-643ea2a45b74.png" width="400"></img>
	</div>

	2. `原生App最低版本`
		- 上次使用新Api或打包新模块的App版本
		- 如果此次打包wgt使用了`新的api`或者打包了`新的模块`,则在发布 `wgt资源包` 的时候,将此版本更新为本次版本
		
		- 如果已有正式版`wgt资源包`,则本次新增会自动带出

	3. `静默更新`
		- App升级时会在后台下载wgt包并自行安装。新功能在下次启动App时生效
		- **静默更新后不重启应用,可能会导致正在访问的应用的页面数据错乱,请谨慎使用!**

	**注:版本号请填写以`.`分隔字符串,例如:`0.0.1`**

- 发布完成页面

	<div align="center">
	<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/c5470d8c-cc37-4b41-8d56-6d50f8daac62.png" width="800"></img>
	</div>

**Tips**
- `/uni_modules/uni-upgrade-center/pages/system/upgradecenter/version/add.vue`中有版本对比函数(compare)。
	- 使用多段式版本格式(如:"3.0.0.0.0.1.0.1", "3.0.0.0.0.1")。如果不满足对比规则,请自行修改。
- 删除应用会把该应用的所有版本记录同时删除
- 升级中心设计之初就支持iOS的wgt更新
- iOS的wgt更新肯定是违反apple政策的,注意事项:
	- 审核期间请不要弹窗升级
	- 升级完后尽量不要自行重启
	- 尽量使用静默更新
- 可以通过以下修改支持iOS的wgt更新:
	> \uni_modules\uni-upgrade-center\pages\mixin\version_add_detail_mixin.js
	> 
	> 将 `data` 中的 `enableiOSWgt: false` 中 改为 `enableiOSWgt: true`


在插件市场安装(uni-admin 1.9.3+ 升级中心已作为内置插件,内置在uni-admin项目中),根据 readme 部署即可。[插件地址](https://ext.dcloud.net.cn/plugin?id=4470)
Q
qiang 已提交
130 131 132 133 134 135

#### uni-upgrade-center-app 前台检测更新

负责前台检查升级更新。

<div align="left" style="display:flex;align-items:center;">
D
DCloud_LXH 已提交
136 137
	<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/b47b89ad-1b81-45db-8115-d246fb5ca906.jpg" alt="官方升级弹框样式" width="250"></img>
	<img style="margin-left:20px;" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-a90b5f95-90ba-4d30-a6a7-cd4d057327db/9e2d38af-90e5-47fb-8a18-d2a76e7ae2b4.jpg" alt="使用uni.showModal自定义弹框" width="250"></img>
Q
qiang 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
</div>

提供了如下功能:

- 基于`uni-upgrade-center`一键式检查更新,统一整包与 wgt 资源包更新

- 自行根据传参完成校验,判断此次更新使用哪种方式

- 一键式升级。弹框、下载、安装、是否强制重启等逻辑已集成

- 下载完成如果取消升级自动缓存安装包,下次进入判断是否符合安装条件,判断不通过则自动清除

- 美观,实用,可自定义扩展

在插件市场安装,根据 readme 部署即可。[插件地址](https://ext.dcloud.net.cn/plugin?id=4542)