蒲公英文档中心

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。

本页目录