添加AppUpgradeVersion类的versionName、versionBuildNumbe可为空

This commit is contained in:
DESKTOP-I3JPKHK\wy 2025-12-16 17:57:50 +08:00
parent ebe45c7fe9
commit c497e72f57
3 changed files with 43 additions and 12 deletions

View File

@ -362,33 +362,64 @@ class AppUpgradeSimple {
// 3. UpgradeInfo // 3. UpgradeInfo
bool hasUpdate = false; 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 // buildNumber
if (serverInfo.versionBuildNumber > currentBuildNumber) { if (versionBuildNumber > currentBuildNumber) {
hasUpdate = true; hasUpdate = true;
} else if (serverInfo.versionBuildNumber == currentBuildNumber) { } else if (versionBuildNumber == currentBuildNumber) {
// buildNumber // buildNumber
if (_compareVersionStrings(serverInfo.versionName, currentVersionName) > 0) { if (versionName != null && _compareVersionStrings(versionName, currentVersionName) > 0) {
hasUpdate = true; hasUpdate = true;
} }
} }
} else { } else {
// //
if (_compareVersionStrings(serverInfo.versionName, currentVersionName) > 0) { if (versionName != null && _compareVersionStrings(versionName, currentVersionName) > 0) {
hasUpdate = true; 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) { if (config.enableDebugLog) {
debugPrint('📊 版本比较结果: ${hasUpdate ? "有新版本" : "已是最新"}'); debugPrint('📊 版本比较结果: ${hasUpdate ? "有新版本" : "已是最新"}');
} }
// UpgradeInfo // UpgradeInfo
// serverInfo
final safeVersionName = serverInfo.versionName ?? currentVersionName;
final safeVersionBuildNumber = serverInfo.versionBuildNumber ?? currentBuildNumber;
return UpgradeInfo( return UpgradeInfo(
hasUpdate: hasUpdate, hasUpdate: hasUpdate,
isForceUpdate: serverInfo.isForce, isForceUpdate: serverInfo.isForce,
versionName: serverInfo.versionName, versionName: safeVersionName,
versionBuildNumber: serverInfo.versionBuildNumber, versionBuildNumber: safeVersionBuildNumber,
currentVersionName: currentVersionName, currentVersionName: currentVersionName,
currentBuildNumber: currentBuildNumber, currentBuildNumber: currentBuildNumber,
updateContent: serverInfo.updateContent, updateContent: serverInfo.updateContent,

View File

@ -5,10 +5,10 @@ import 'app_upgrade_method.dart';
/// App版本进行比对 /// App版本进行比对
class AppUpgradeVersion { class AppUpgradeVersion {
/// ( "1.0.0") /// ( "1.0.0")
final String versionName; final String? versionName;
/// ( 10) /// ( 10)
final int versionBuildNumber; final int? versionBuildNumber;
/// ///
final String updateContent; final String updateContent;
@ -37,9 +37,9 @@ class AppUpgradeVersion {
final List<AppUpgradeMethod>? supportedMethods; final List<AppUpgradeMethod>? supportedMethods;
AppUpgradeVersion({ AppUpgradeVersion({
required this.versionName,
required this.versionBuildNumber,
required this.updateContent, required this.updateContent,
this.versionName,
this.versionBuildNumber,
this.downloadUrl, this.downloadUrl,
this.isForce = false, this.isForce = false,
this.appStoreUrl, this.appStoreUrl,

View File

@ -1,6 +1,6 @@
name: yx_app_upgrade_flutter name: yx_app_upgrade_flutter
description: "A universal, robust, and high-performance Flutter app upgrade plugin with smart update features." 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 homepage: https://github.com/yourusername/yx_app_upgrade_flutter
environment: environment: