uniapp自动升级

一、创建云服务空间(https://unicloud.dcloud.net.cn

云空间用于关联需要版本控制升级的项目,如果已拥有云空间则省略此步骤。

二、搭建 uni升级中心 - 后台管理系统(升级中心 uni-upgrade-center - Admin)

uni-admin是一套基于uniCloud的开源应用管理端系统。

本插件是uni-admin系统的扩展插件,为开发者的admin系统添加功能。

需先确保本机有uni-admin项目,然后将此插件导入到uni-admin项目下。

如本机没有uni-admin项目,需要先在HBuilderX中新建项目 -> uni-app项目 -> 选择uni-admin模板。

如本机的uni-admin项目版本过老,可能无法使用新插件,需及时升级本机的uni-admin项目。

uni-admin 搭建过程和使用详见 https://ext.dcloud.net.cn/plugin?id=4470

三、需要打包的项目引入 uni升级中心 - 客户端检查更新插件(升级中心 uni-upgrade-center - App)

uni-upgrade-center-app引入过程详见https://ext.dcloud.net.cn/plugin?id=4542

四、App打包

1、两种打包形式,原生apk包和热更新wgt包

通常选择使用云端证书进行打包

此时为需要打包的app生成证书

2、我们是通过https://www.dcloud.io/ 的开发者后台

登录账号需要和app绑定的云空间保持一致

3、登录成功后,可以到我的应用里面创建应用

创建完成后进入到具体应用中,生成证书(appid是唯一的需要保持一致)

五、app发布和版本控制

1、运行步骤二搭建的uni-admin项目 登录成功后进入到uni-admin

若未发现升级中心模块则需要 添加菜单

Vue2

运行起来uniCloud admin,菜单管理模块会自动读取/uni_modules/uni-upgrade-center/menu.json文件中的菜单配置,生成【待添加菜单】,选中升级中心,点击添加选中的菜单即可

Vue3

将/uni_modules/uni-upgrade-center/menu.json 拷贝至 uniCloud/database/db_init.json 中的 opendb-admin-menus 节点下,并右键初始化数据库即可。

应用列表

点击菜单 应用管理,这里展示你所添加的 App,点击右上角 新增 可以新增一个 App

将App的信息都填写完善后,你可以在列表的操作列进行修改应用信息或者删除该应用。

注意:

删除应用会把该应用的所有版本记录同时删除

版本管理

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

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

包地址

可以选择手动上传一个文件到 云存储,会自动将地址填入该项

也可以手动填写一个地址,就可以不用再上传文件

如果是发布苹果版本,包地址则为 应用在AppStore的链接

强制更新

如果使用强制更新,App端接收到该字段后,App升级弹出框不可取消

上线发行

可设置当前包是否上线发行,只有已上线才会进行更新检测

同时只可有一个线上发行版,线上发行不可更设为下线。未上线可以设为上线发行并自动替换当前线上发行

版修改当前包为上线发行,自动替换当前线上发行版

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

发布wgt资源包

大部分配置与发布 原生App安装包 一致

原生App最低版本

上次使用新Api或打包新模块的App版本

如果此次打包wgt使用了新的api或者打包了新的模块,则在发布 wgt资源包 的时候,将此版本更新为本次版本

如果已有正式版wgt资源包,则本次新增会自动带出

静默更新

App升级时会在后台下载wgt包并自行安装。新功能在下次启动App时生效

静默更新后不重启应用,可能会导致正在访问的应用的页面数据错乱,请谨慎使用!

发布完成页面

注意:

  1. pages/system/upgradecenter/version/add.vue中有版本对比函数(compare)。
    使用多段式版本格式(如:"3.0.0.0.0.1.0.1", "3.0.0.0.0.1")(比较版本的方式大致是版本号去除. 后拼接成数字比较大小,具体可以去看下载插件中的代码)。如果不满足对比规则,请自行修改。
    本地的uniCloudAdmin 和待发行项目都必须关联到云空间
  2. 在维护老项目的时候发现有些系统内的升级插件是老的,老版本的不需要后台管理系统(升级中心 uni-upgrade-center - Admin),新版本的要。具体看官方的内容。
相关推荐
Asort1 分钟前
JavaScript 从零开始(六):控制流语句详解——让代码拥有决策与重复能力
前端·javascript
无双_Joney20 分钟前
[更新迭代 - 1] Nestjs 在24年底更新了啥?(功能篇)
前端·后端·nestjs
在云端易逍遥22 分钟前
前端必学的 CSS Grid 布局体系
前端·css
ccnocare23 分钟前
选择文件夹路径
前端
艾小码23 分钟前
还在被超长列表卡到崩溃?3招搞定虚拟滚动,性能直接起飞!
前端·javascript·react.js
闰五月24 分钟前
JavaScript作用域与作用域链详解
前端·面试
泉城老铁28 分钟前
idea 优化卡顿
前端·后端·敏捷开发
前端康师傅28 分钟前
JavaScript 作用域常见问题及解决方案
前端·javascript
司宸29 分钟前
Prompt结构化输出:从入门到精通的系统指南
前端