蒲公英文档中心

SDK 自动更新机制

蒲公英 iOS 与 Android SDK 自动版本更新的判定机制,涵盖新旧两种版本比较方式。

蒲公英 SDK 已停止维护,新集成请直接使用 蒲公英 API。本文保留用于已集成 SDK 的项目参考。

蒲公英 iOS SDK 与 Android SDK 均支持自动版本更新。本文说明 SDK 判定新版本的逻辑。

前置概念

阅读本文前,请先了解蒲公英的版本号体系:

  • App 本身的版本号:即 iOS 的 CFBundleShortVersionString / CFBundleVersion,Android 的 versionName / versionCode。
  • 蒲公英自增 Build 号:每次上传到蒲公英时由平台自增的编号,不写入 App 内。

参见 显示正确的 Build 版本号。

版本更新机制对照

机制适用版本判定依据
新机制Android 2.8.3+、iOS 2.8.9+本地 App Version 与 Build vs 蒲公英上 App Version 与 Build
旧机制Android 2.8.3 之前、iOS 2.8.9 之前本地 App Version 与 蒲公英自增 Build vs 线上值

两种机制均采用 "任一维度检测到线上版本更高,即提示更新" 的规则。

新机制

  1. 若 本地 App Version 小于 蒲公英上的 App Version,提示更新。iOS 对应 CFBundleShortVersionString,Android 对应 versionName。
  2. 若 本地 App Build 小于 蒲公英上的 App Build,提示更新。iOS 对应 CFBundleVersion,Android 对应 versionCode。

旧机制

  1. 若 本地 App Version 小于 蒲公英上的 App Version,提示更新。
  2. 若 本地蒲公英自增 Build 号 小于 蒲公英上的自增 Build 号,提示更新。

由于蒲公英自增 Build 号不写入 App 内,首次安装时 SDK 会将当前线上最新的自增 Build 号写入本地文件,作为下次比较的基准。

强制更新

Android SDK V3.0.4(2019.02.27)起支持强制更新。如果强制更新设置未生效,请先确认 SDK 版本。iOS SDK 不支持强制更新。

计划提交 App Store 的 iOS App,请移除自动更新相关代码与 SDK。苹果不允许含有自动版本更新能力的 App 上架 App Store。

本页目录