添加AppUpgradeVersion类的versionName、versionBuildNumbe可为空
This commit is contained in:
parent
ebe45c7fe9
commit
c497e72f57
|
|
@ -362,33 +362,64 @@ class AppUpgradeSimple {
|
|||
|
||||
// 3. 比较版本并构建 UpgradeInfo
|
||||
bool hasUpdate = false;
|
||||
if (serverInfo.versionBuildNumber > 0) {
|
||||
|
||||
final versionName = serverInfo.versionName;
|
||||
final versionBuildNumber = serverInfo.versionBuildNumber;
|
||||
|
||||
/// 断言 判断 serverInfo 的版本名称和版本号不可都为null
|
||||
assert(
|
||||
!(versionBuildNumber == null && versionName == null),
|
||||
'versionBuildNumber和versionName不可同时为NULL',
|
||||
);
|
||||
|
||||
if (versionBuildNumber != null && versionBuildNumber > 0) {
|
||||
// 优先比较 buildNumber
|
||||
if (serverInfo.versionBuildNumber > currentBuildNumber) {
|
||||
if (versionBuildNumber > currentBuildNumber) {
|
||||
hasUpdate = true;
|
||||
} else if (serverInfo.versionBuildNumber == currentBuildNumber) {
|
||||
} else if (versionBuildNumber == currentBuildNumber) {
|
||||
// buildNumber 相同,比较版本名
|
||||
if (_compareVersionStrings(serverInfo.versionName, currentVersionName) > 0) {
|
||||
if (versionName != null && _compareVersionStrings(versionName, currentVersionName) > 0) {
|
||||
hasUpdate = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 只比较版本名
|
||||
if (_compareVersionStrings(serverInfo.versionName, currentVersionName) > 0) {
|
||||
if (versionName != null && _compareVersionStrings(versionName, currentVersionName) > 0) {
|
||||
hasUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
// if (versionBuildNumber > 0) {
|
||||
// // 优先比较 buildNumber
|
||||
// if (versionBuildNumber > currentBuildNumber) {
|
||||
// hasUpdate = true;
|
||||
// } else if (versionBuildNumber == currentBuildNumber) {
|
||||
// // buildNumber 相同,比较版本名
|
||||
// if (_compareVersionStrings(versionName, currentVersionName) > 0) {
|
||||
// hasUpdate = true;
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// // 只比较版本名
|
||||
// if (_compareVersionStrings(versionName, currentVersionName) > 0) {
|
||||
// hasUpdate = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
if (config.enableDebugLog) {
|
||||
debugPrint('📊 版本比较结果: ${hasUpdate ? "有新版本" : "已是最新"}');
|
||||
}
|
||||
|
||||
// 构建 UpgradeInfo
|
||||
// 兜底处理,避免 serverInfo 里的可空字段传入非空参数导致崩溃
|
||||
final safeVersionName = serverInfo.versionName ?? currentVersionName;
|
||||
final safeVersionBuildNumber = serverInfo.versionBuildNumber ?? currentBuildNumber;
|
||||
|
||||
return UpgradeInfo(
|
||||
hasUpdate: hasUpdate,
|
||||
isForceUpdate: serverInfo.isForce,
|
||||
versionName: serverInfo.versionName,
|
||||
versionBuildNumber: serverInfo.versionBuildNumber,
|
||||
versionName: safeVersionName,
|
||||
versionBuildNumber: safeVersionBuildNumber,
|
||||
currentVersionName: currentVersionName,
|
||||
currentBuildNumber: currentBuildNumber,
|
||||
updateContent: serverInfo.updateContent,
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ import 'app_upgrade_method.dart';
|
|||
/// 用户只需返回此类的实例,插件会自动获取当前App版本进行比对
|
||||
class AppUpgradeVersion {
|
||||
/// 版本名称 (如 "1.0.0")
|
||||
final String versionName;
|
||||
final String? versionName;
|
||||
|
||||
/// 版本号 (如 10)
|
||||
final int versionBuildNumber;
|
||||
final int? versionBuildNumber;
|
||||
|
||||
/// 更新内容
|
||||
final String updateContent;
|
||||
|
|
@ -37,9 +37,9 @@ class AppUpgradeVersion {
|
|||
final List<AppUpgradeMethod>? supportedMethods;
|
||||
|
||||
AppUpgradeVersion({
|
||||
required this.versionName,
|
||||
required this.versionBuildNumber,
|
||||
required this.updateContent,
|
||||
this.versionName,
|
||||
this.versionBuildNumber,
|
||||
this.downloadUrl,
|
||||
this.isForce = false,
|
||||
this.appStoreUrl,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name: yx_app_upgrade_flutter
|
||||
description: "A universal, robust, and high-performance Flutter app upgrade plugin with smart update features."
|
||||
version: 1.0.0
|
||||
version: 1.0.1
|
||||
homepage: https://github.com/yourusername/yx_app_upgrade_flutter
|
||||
|
||||
environment:
|
||||
|
|
|
|||
Loading…
Reference in New Issue