APP在线升级经验分享

0 评论 621 浏览 0 收藏 10 分钟

APP在线升级是一个通用功能,在产品的发展过程中当系统升级或者出现Bug时,需要进行升级操作。请注意,本文主要是基于我当前公司的实际需求与发展阶段资源等限制,方案上有的是从简而来。

一、场景说明

  • 当系统升级优化,例如功能或者交互优化,可以提升用户体验,用户可以选择升级。
  • 当系统出现严重Bug或者严重影响用户使用的问题,强制用户进行更新操作。
  • 当系统上线APP后,发现问题,需要紧急处理,立刻停止问题版本的持续更新。

二、名词说明

  • 版本号:别名Version Name,对用户可见,就是APP上常见的V1.0.3
  • Version Code:不对用户感知,用于APP判断版本新旧
  • 升级策略:控制APP某个版本何时以及如何升级
  • 强制更新:强制用户必须要升级APP版本,不升级不可用

三、流程

1. 整体流程

APP更新的整体流程主要是三大部分,更新APP包、发布版本、客户端引导客户安装。

更新APP包:此步骤是在线下进行,包括APP的发布计划(由产品主导定义新版本需要发布的内容),研发进行开发打包,测试,然后走线下发布流程审批,审批完成之后更新iOS的APP Store和安卓应用商店内的APP,更新都需要审核,所以发布版本都是由提前量,提前准备。软件审核通过后不会立即发布,会和内部管理后台设置的发布时间同步发布。

发布版本:当发布计划的内容开发测试完成后,需要在管理平台上创建新的版本,设置对应版本的更新策略。策略中会设置发布时间(发布会设置在未来的某个时间点),更新策略等。

客户端引导客户安装:客户端会检测当前版本与管理平台发布的版本是否一致,不一致会根据策略进行更新。

2. 内部管理平台发布新版本

当需要发布新版本,需要在管理平台发布新版本,管理平台会按照上面的流程进行发布。

3. 移动端升级流程

当用户启动APP时,APP会对比当前版本与管理平台发布的版本,如果不是最新版本,会去比较当前版本与最新版本的Version Code,决定是否要进行升级提示(更详细的VersionCode作用请查看下方功能设计中版本管理功能说明),如果当前版本VersionCode比最新版本小,根据更新策略进行强制更新或者让用户选择是否更新。

4. 异常流程

当前的异常流程只考虑发布后发现最新版包有问题,紧急停止当前发布版本包,此操作只会阻止还未更新升级到问题版本的客户端升级,已经升级过的客户端此流程无法处理,只能紧急修复重新发布更新版本强制用户更新.

四、涉及业务

通过上述的升级流程,可以梳理出需要设计到的业务平台和功能点内部

管理平台:新增并发布版本、紧急停用版本

移动端:检查比较版本信息、提示更新、强制更新、可选更新

五、功能设计

1. 内部管理平台

管理平台主要是维护管理APP的版本和每个版本的更新策略。已经异常情况下的紧急发布和紧急停用。

版本列表-发布、停用版本

版本列表会显示所有的版本记录,列表显示字段如上图所示。

版本区分为iOS和安卓,两者独立互不影响。安卓和iOS逻辑都是一致的。同时只能有一条记录处于发布状态,当前处于发布状态的版本即可理解为最新版本。

针对每条发布记录,根据状态可以进行不同操作,已停用的版本,可以查看二维码下载APP包,已发布的版本可以查看二维码和停用,未生效的版本可以查看二维码、发布和删除。

在进行发布和停用操作时,会强制操作人填写停用或者发布的原因。

新增版本

软件创建新版本的时候,需要上传APP的包,版本号和Version Code通过上传的包系统自动识别。版本号和Version Code全局保持唯一。

更新策略:可以选择强制更新和非强制更新,强制更新时,用户必须要更新,否则不能使用APP,非强制更新时,只要用户的版本高于最低兼容版本,用户可以选择不升级,不影响使用。

最低兼容版本:选择已经发布过的所有版本,当客户端的版本低于最低兼容版本时,会强制用户升级到当前版本。此产品是B端产品,并且处在发展阶段,当前公司没有足够的人力资源可以满足兼容远古版本的能力,所以增加了最低兼容版本字段,可以帮助后期的接口变动等问题不会影响使用。

更新提示用于在移动端升级时进行提示。

预计发布时间设定该版本什么时候发布,达到时间系统会自动停用当前已发布版本并发布此版本,发布时间做了操作限制,只能选择第二天的时间,防止误操作,如果需要立即发布,可以创建完成后在列表进行发布操作。

客户端

强制更新

客户端打开应用时,检测到有新版本并且是强制更新,会弹窗提示用户,此时用户只能点击立即更新。用户点击更新后,优先在应用内从平台下载包安装,如果手机有限制,不允许应用内安装,点击后跳转对应的应用商店更新,例如苹果跳转到APP Sotre进行升级。

可选更新

客户端打开应用时,检测到可选更新,弹窗提示用户,此时用户可以选择立即更新,也可以选择忽略更新。用户点击更新后,优先在应用内从平台下载包安装,如果手机有限制,不允许应用内安装,点击后跳转对应的应用商店更新。用户点击忽略更新后,此版本不再提示用户。

提醒机制当前从简而作,只在第一次检测到时提示用户。

手动检查更新

用户可以在我的-关于APP中点击版本更新,当有新版本时弹窗提示用户更新内容,用户选择更新在后台进行更新不影响操作。如果当前版本是最新版本,点击时提示用户当前版本为最新版本。

六、总结

以上是关于APP在线升级的功能设计,上述设计是基于我当前管理产品的实际情况而来,有很多功能点并不完善,在用户体验上也有所欠缺,后续在产品的迭代中也会对此进行优化。

本次编写此文章一是为了记录学习,二是希望能给需要的人一点灵感和思路。正如本人名称“菜鸡弟弟”,欢迎各位产品经理一起交流沟通。

本文由 @菜鸡弟弟 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!