灰度管理主要是对灰度规则进行管理。用户可以创建,修改,配置,删除灰度规则。还可以根据优先级调整灰度规则的位置。优先级自上而下。
列表中依次显示了拖拽位置,灰度规则ID,灰度规则名称,灰度规则类型,是否强制更新,是否启用等。以及可以进行的操作,主要有配置,编辑,删除等功能。最上面的新建灰度规则按钮则可以帮助我们新建一条灰度规则。如下图:
在新建灰度规则时需要填写灰度规则ID(请使用全英文),灰度规则名称,灰度规则描述,灰度规则类型,是否强制刷新以及比较重要的目标应用和目标版本。 目标版本表示如果用户校验当前灰度规则为真时,应该访问的应用版本。注意:对应的应用版本的状态应该为已发布,如果应用已经结束发布则用户将访问不到当前版本。
新建规则完成之后就可以点击对应的配置按钮进行配置,我们看一下集合规则的配置项。灰度规则类型目前有两种:集合规则与设备规则。
可以配置一个ID的集合,当ID在此集合中时,当前用户可以访问当前规则的目标版本。
集合规则的配置项是一个集合类型与输入域,集合类型自行选择,默认为账号。在输入域中可以输入多个ID,之间用回车间隔。就是一行输入一个ID,支持批量导入。
集合类型的功能需要配合SDK才能使用,SDK版本android >= 1033,iOS版本 >= 1363,否则,配置的ID类型一律按照账号处理。
- 账号
此时ID为调用context.setToken方法时,传入参数时的uid字段(该字段为用户账号或身份证号等唯一标识)的值;亦可通过context.secureSetString方法传入”worker_uid”作为key,传入另外的value来更改此ID。- 客户号
此时context.secureSetString方法传入”clientNum”作为key,传入另外的value来更改此ID,灰度规则也将根据secureSetString传入的value进行匹配。- 机构号
此时context.secureSetString方法传入”institutionNum”作为key,传入另外的value来更改此ID,灰度规则也将根据secureSetString传入的value进行匹配。
上述的集合类型与集合类型对应的secureSetString的key对应的字段可通过更改data/csii-shared/grayScale/group.schema.json
文件自行更改。
例如:新增一个地区号类型,其对应的key为areaNum,则在上述文件中的properties.groupType.enum
数组中添加“areaNum”,在properties.groupType.options.enum_titles
中添加“地区号”。这样当集合类型选择为地区号时,灰度规则就会按照secureSetString传入的“areaNum”对应的value进行匹配。
注意:当且仅当key为“worker_uid”时,才会与setToken方法绑定,若更改该key,仅需用secureSetString设置即可。新加的类型在properties.groupType.enum
数组中的顺序要和properties.groupType.options.enum_titles
数组中的顺序相对应!!!
可以配置设备的类型和手机类型。来对设备进行筛选。
设备规则的配置包括两个部分,设备类型有安卓,iOS,全部三个选项。手机类型是一个数组,可以添加多个手机类型。符合设置的设备类型的手机即为符合灰度规则,会进入对应的配置好的灰度版本进行下载。
在灰度规则的下面可以配置一系列的浮窗,对应用进入的灰度的提醒的内容进行配置。 目前可以对检测到灰度版本弹窗,下载异常弹窗和下载成功重启手机弹窗。分别可以对标题,内容和按钮的内容进行配置。
灰度配置最下方有单独发布按钮,独立于资源版本。上述配置完最后一定要点击“发布”按钮使其生效。