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 线上值 |
两种机制均采用 "任一维度检测到线上版本更高,即提示更新" 的规则。
新机制
- 若 本地 App Version 小于 蒲公英上的 App Version,提示更新。iOS 对应
CFBundleShortVersionString,Android 对应versionName。 - 若 本地 App Build 小于 蒲公英上的 App Build,提示更新。iOS 对应
CFBundleVersion,Android 对应versionCode。
旧机制
- 若 本地 App Version 小于 蒲公英上的 App Version,提示更新。
- 若 本地蒲公英自增 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。