APP在线升级是一个通用功能,在产品的发展过程中当系统升级或者出现Bug时,需要进行升级操作。请注意,本文主要是基于我当前公司的实际需求与发展阶段资源等限制,方案上有的是从简而来。
一、场景说明
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协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务