From 8bdd4d957c43359893dd9f625ab97ccbe205a6ce Mon Sep 17 00:00:00 2001 From: cc <124141@qq.com> Date: Tue, 15 Apr 2025 19:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbeta=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/common/logtext.ets | 53 ++++++++++++++++++++------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/entry/src/main/ets/common/logtext.ets b/entry/src/main/ets/common/logtext.ets index 6a712eb..966c777 100644 --- a/entry/src/main/ets/common/logtext.ets +++ b/entry/src/main/ets/common/logtext.ets @@ -233,22 +233,47 @@ export class LogManager { return 1; } - // 分割版本号,只保留数字部分 - const partsA = versionA.split(/[. ]/).map(part => { - const num = parseInt(part); - return isNaN(num) ? 0 : num; - }); - const partsB = versionB.split(/[. ]/).map(part => { - const num = parseInt(part); - return isNaN(num) ? 0 : num; - }); + // 分离主版本号和beta版本号 + let mainVersionA = versionA; + let betaVersionA = ''; + let mainVersionB = versionB; + let betaVersionB = ''; - // 比较每个部分 - for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) { - const numA = partsA[i] || 0; - const numB = partsB[i] || 0; + if (isBetaA) { + const parts = versionA.split('beta'); + mainVersionA = parts[0].trim(); + betaVersionA = parts[1].trim(); + } + + if (isBetaB) { + const parts = versionB.split('beta'); + mainVersionB = parts[0].trim(); + betaVersionB = parts[1].trim(); + } + + // 比较主版本号 + const mainPartsA = mainVersionA.split('.').map(part => parseInt(part) || 0); + const mainPartsB = mainVersionB.split('.').map(part => parseInt(part) || 0); + + for (let i = 0; i < Math.max(mainPartsA.length, mainPartsB.length); i++) { + const numA = mainPartsA[i] || 0; + const numB = mainPartsB[i] || 0; if (numA !== numB) { - return numB - numA; + return numB - numA; // 降序排列,最新版本在前 + } + } + + // 如果主版本号相同且都有beta版本,比较beta版本号 + if (betaVersionA && betaVersionB) { + const betaPartsA = betaVersionA.split('.').map(part => parseInt(part) || 0); + const betaPartsB = betaVersionB.split('.').map(part => parseInt(part) || 0); + + for (let i = 0; i < Math.max(betaPartsA.length, betaPartsB.length); i++) { + const numA = betaPartsA[i] || 0; + const numB = betaPartsB[i] || 0; + if (numA !== numB) { + return numB - numA; // 降序排列,beta2.0 > beta1.2 + } } }