阿里最新热修复框架sophix集成详解(四):补丁灰度发布、全量
本文更新于2017年11月21日。
注意事项:
- 支持多渠道包仅选用某个渠道包的补丁,只需要保证变化相同即可,不过对于不同的apk包最好进行全面的测试。
- 发布前请严格按照:扫码内测 => 灰度发布 => 全量发布的流程进行,以保证补丁包能够正常在所有Android版本的机型上生效。
- 补丁状态:
- 等待中:补丁上传成功,等待操作。
- 已灰度:补丁正在进行灰度发布。
- 已发布:补丁已全量发布至所有设备。
- 已停止:补丁发布行为已暂停。
灰度发布
在应用版本详情页,点击补丁版本列表里的【查看详情】,进入 补丁详情页。
补丁详情页
在刚刚上传完补丁后,补丁处于 等待中 的状态,勾选 灰度发布。
设置完设备数,客户端拉取补丁会消耗该设备数,达到灰度设备数后,灰度补丁自动置为停止状态。
设备数:指设备请求更新该补丁的次数,并不等于绝对设备数。
例如:1个设备请求了2次更新该补丁,则会消耗掉2的设备数。
-
确认发布
点击【确认发布】,补丁状态为 已灰度 ,进入灰度发布状态。
灰度发布状态
这时,当用户打开客户端,就会拉取线上的补丁,修复程序。
还记得代码中的queryAndLoadNewPatch()方法吗,它的作用去看系列第二篇末尾的sample。
- 成功推送设备数:每当有设备发起一次更新请求,且补丁下载成功,则记为一次成功推送。
- 累计加载设备数:每当有设备成功加载该补丁,则记为一次累计加载。
注:
· 只会下载补丁版本号比当前应用存在的补丁版本号高的补丁, 比如当前应用已经下载了补丁版本号为5的补丁, 那么只有后台发布的补丁版本号>5才会重新下载.
· 在上传新的补丁之后,要调试时,如果以往的补丁有处于 已灰度 或已发布状态,要停止发布。 如果不停止,最新的补丁处于等待中,也就是未发布。那么当你打开客户端,它会拉取以往发布的补丁修复程序,这样会影响你观测调试结果。
· 后台数据可能有少许延迟。
-
停止发布
点击【停止发布】后,用户选择停止发布后,系统将停止该补丁的继续发布,但已加载该补丁的设备会依然保持安装该补丁的状态。
界面变成:
停止发布 后 -
继续发布
用户点击【继续发布】后,将可以重新设置发布规则。
如果当前版本在停止前处于灰度中,继续发布可以:
灰度状态下继续发布· 重设灰度发布规则,新的规则中设备数必须大于之前的值。
· 改为全量发布。
所以,从灰度发布到全量发布的步骤是
· 先在补丁详情页勾选灰度发布,点击确认发布
· 推送完所有灰度设备后,点击停止发布
· 再点击继续发布,弹出框,选择全量发布
如果当前版本在停止前处于全量发布,继续发布可以:
继续全量发布。
- 选择回滚
用户选择回滚的目标补丁后,所有该应用版本下的设备都会回滚到目标补丁的版本。
使用回滚功能必需要具备一下几个条件:
· 当前的版本已停止发布。
· 该版本之前存在至少一个全量发布的历史版本。
全量发布
选择全量发布后,将对所有安装了当前应用版本(即之前创建应用时所填写的应用版本号)的设备推送该补丁。
与灰度发布类似,在全量发布会可以根据自身需要停止本次全量发布,停止发布后可以选择:
· 继续全量发布。
· 回滚版本(如果存在历史版本)
添加过滤机型
全量发布后,我们可以添加过滤机型。
不全量发布是不可以添加机型过滤的
在App版本详情页,点击【添加过滤机型】
点击添加过滤机型弹出框
这里对过滤机型的弹出框参数进行说明:
- 系统版本
系统版本是指手机所使用的OS的版本。
在控制台中,有相应的系统版本列表可供选择。如果列表中没有需要自定义,请按如下标准获取系统版本。
android.os.Build.VERSION.RELEASE
例如系统版本结果是:7.1
- 手机品牌
手机品牌是指手机贴牌商标代表的品牌,需要区别手机制造商,手机制造商可能会生产多个品牌,一个品牌也可能是多个制造商生产。
在控制台中,我们有相应的品牌列表供选择使用。如果需要自定义,请按如下标准获取手机品牌,注意实际过滤时不区分大小写。
android.os.Build.BRAND
例如手机品牌是:Xiaomi
- 手机机型
手机机型是指某个手机品牌下手机具体的型号。
目前由于手机机型庞杂,没有提供选择列表供选择,后续会支持。填写手机机型时请按如下标准,不区分大小写。
android.os.Build.MODEL
例如手机型号是:OPPO R11
【注意】如果想设置全部机型,请在自定义机型里面,输入 :all
到这里,sophix集成的全部内容就结束了。阿里热修复官方的文档有点琐碎,我把重点和注意点都挑出来了。读完这四篇,相信你会迅速集成sophix到自己的应用里。
这再给出官方接入文档地址,给还想看官方文档的朋友。官方接入文档