Skip to main content

Shiply 热修复发布平台使用指引

一、前置条件

1.1 创建项目与产品

在 Shiply 平台创建项,以及对应的 Android 平台产品。您也可以按照 如何创建项目和产品 的指引完成该步骤。

创建好产品后,平台会为您分配 appIdappKey,这将作为 SDK 访问服务的认证凭据。

1.2 接入热修复 SDK

完成热修复的 SDK 接入工作,并已经成功构建生成补丁文件。您也可以按照 接入热修复 Android SDK 的指引完成该步骤。

二、创建补丁发布任务

2.1 创建发布任务

点击右上角的 新建 按钮,进入新建发布页面,按照页面提示填写相关内容。

热修复新建任务入口

热修复新建任务页面

  • 任务名称: 发布任务的名称,用于显示在在任务列表中
  • 修复版本: 补丁下发的目标版本,将作为下发规则生效(需要与SDK初始化时传入的一致,默认使用 App 的 versionName
  • 热修产物: 该任务需要下发的补丁包,直接上传已签名的版本即可
  • 开发人员: 该任务的开发人员,作为发布审批环节的审批人
  • 验证人员: 该任务的验证人员,作为发布审批环节的审批人
  • 规则模板: 该任务生成时默认采用的发布规则,如:体验账号、下发规则、灰度规则等

发布任务创建成功后,任务列表中会增加一个新的状态为 体验中 的任务,点击详情,可以查看该任务的详细信息。

热修复任务列表

热修复任务详情

2.2 配置任务信息

任务创建时使用的是指定的默认配置,这些配置在发布前都可以按需修改。

1. 配置基础信息

热修复任务配置

  • 开发人员: 该任务的开发人员,作为发布审批环节的审批人
  • 测试人员: 该任务的验证人员,作为发布审批环节的审批人
  • 体验账号: 在任务发布前(体验中/灰度中)可拉取该任务的白名单,用于发布前的体验和测试

PS: 这里的体验账号填写 SDK 初始化时传入的 userId 字段值

2. 配置下发规则和放量策略

热修复任务配置

  • 下发规则: 该任务针对哪些设备进行下发,默认支持:系统版本、厂商、机型、号码包,业务也可扩展自定义属性,用于下发控制
  • 灰度规则: 灰度放量时的批次数量、批次上限、持续时间等规则配置

2.3 测试验证补丁

配置好 体验账号下发规则 后,就可以重启 App,或通过调试页面触发配置请求,以验证补丁下发通道是否正常,补丁是否可以正常安装生效。

如果成功拉取到补丁,并且补丁也安装成功,则可以再次重启 App,以触发补丁加载(补丁安装成功后,需要等到下次一冷启动才会加载生效)。

如果无法拉取到补丁,请检查 体验账号下发规则 是否与 App 的状态匹配。如果拉取到补丁后,提示补丁安装失败,请检查 SDK 接入和补丁制作流程是否正确。

PS: Tinker 在部分高版本系统上安装耗时较长,通常需要等待1~2分钟

三、补丁发布放量

3.1 发布审批

通过体验账号的方式完成补丁的测试验证后,就可以进入发布审批环节,准备正式发布。 待所有审批通过后,该任务会自动进入灰度放量阶段,现网非体验账号的用户也能拉取到该任务。

热修复任务审批

PS: 如果 灰度放量审批 阶段的审批人为空,且无法操作,请前往 热修设置,配置 灰度发布审核人 即可。

热修复设置

热修复发布审核人设置

3.2 灰度放量

进入灰度放量后,系统会按照灰度策略的批次设置,一批一批的进行自动放量。放量期间也会实时的统计生效数据数据,并以图表的方式进行展示。

热修复灰度放量

热修复数据统计

  • 下发量: 补丁下发的设备量
  • 安装量: 补丁已安装的设备量
  • 激活量: 补丁已激活的激活量(补丁需要进程重启才能激活)

PS: 数据统计方式为单日累计,从每日零点开始累加,以体现当日实际的补丁覆盖情况

3.3 任务状态控制

在任务列表及任务详情中都有任务状态的操作按钮,可以用于任务状态的扭转。任务发布后,任务处在生效中,如果这个时候需要控制补丁放量,或撤回已生效的补丁,则可以使用该能力。

  • 暂停: 已经拉取到该补丁的用户将继续生效,未拉取到的用户将不会命中该任务
  • 停止: 所有已拉取到该补丁的用户将卸载补丁(等同于撤回补丁)

四、其他功能说明

4.1 发布审核人

发布审核人作为补丁发布的最后一道关卡,用于保证补丁发布的安全性,避免随意的发布,或发布配置错误导致线上事故。

热修复发布审核人设置

PS:新接业务请务必配置,否则任务发布的最后一个审批环节无法进行

4.2 规则模板

在不同的发布场景下,我们可能需要对发布任务的规则做一些调整,例如:灰度版本的用户量比较少,灰度批次的上限设置需要更低。

我们可以预先为不同场景创建规则模板,这样在任务创建时我们可以直接选择模板,而免去了每次任务发布都去进行复杂修改的麻烦。

热修复规则模板设置