添加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
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,

View File

@ -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,

View File

@ -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: