Skip to content

sybilo/upgrade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Upgrade Protocol

Mobile CHECK UPGRADE custom protocol.

方案一

  1. 在 github 发布 apk;
  2. 在 github 仓库指定的文件upgrade.profile中更新参数;
  • 参数包括如下字段:
    • apk 的链接地址;
    • 版本号;
    • 灰度发布比例;
    • 更新日志;
    • 文件的 hash;
    • 是否强制更新。
    • 格式:
    {
      "apkUrl": "https://github.com/sybilo/upgrade/${apk-url}.apk",
      "version": "v1.0.0",
      "gatedLaunch": 0.1,
      "title": "New Version to Update(v1.0.0):",
      "notes": "${markdown}",
      "sha-1": "${hash by sha-1}",
      "force": true
    }
  1. 检测更新
  • App 每天自动检查一次版本更新(也可手动触发);
  • 检测更新时,App 首先请求upgrade.profile文件,取versionCode字段判断是否大于当前版本的versionCode,通过则判断是否已忽略该版本灰度,如未忽略,在启动更新。
    • 判断是否已忽略该版本灰度:取出以该versionCode作为keyrandom,若无random则生成并存储,if(random < gatedLaunch)表示可启动更新。
    • random的生成:随机生成一个 [0, 1) 范围的随机数。
  1. 更新
    弹出对话框显示新版本的更新日志notes,然后下载 apk,比较下载的apk文件 hash(与sha-1字段是否相同),通过后弹出系统安装对话框执行安装。
  • 灰度发布字段gatedLaunch有可能更新,所以每次都需要取出来比较。

方案二

方案一中第3步检测更新的每天自动检测改为被动的频道推送,即:upgrade.profile文件由主动下载改为订阅频道,在接收到upgrade.profile内容后,触发后续步骤。

  • 其它步骤同方案一。

About

Mobile CHECK UPGRADE custom protocol.

Resources

Stars

Watchers

Forks

Packages

No packages published