From 0cd5b5aa793f0bcfd7a395d227de8c8647471ffa Mon Sep 17 00:00:00 2001 From: mahaonan Date: Wed, 6 Dec 2023 09:22:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E7=AD=BE=E5=90=8D=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E5=B7=A5=E7=A8=8B=EF=BC=8C=E5=86=8D=E6=AC=A1=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E6=97=B6=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=8E=9F=E6=9C=89?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E6=96=87=E4=BB=B6=E8=BF=9B=E8=A1=8C=E7=AD=BE?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mahaonan --- .../flutter_tools/lib/src/ohos/hvigor.dart | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/packages/flutter_tools/lib/src/ohos/hvigor.dart b/packages/flutter_tools/lib/src/ohos/hvigor.dart index cb07a97e40..dfde01d681 100644 --- a/packages/flutter_tools/lib/src/ohos/hvigor.dart +++ b/packages/flutter_tools/lib/src/ohos/hvigor.dart @@ -173,25 +173,39 @@ Future signHap(LocalFileSystem localFileSystem, String unsignedFile, } final Directory resultBackup = localFileSystem .directory(globals.fs.path.join(signToolHome, 'result.bak')); - //如果result.bak不存在,代表是第一次构建,拷贝result.bak。 以后每一次result,都从result.bak还原 + + String projectHome = globals.fs.directory(getOhosBuildDirectory()).path; + final Directory projectSignHistory = localFileSystem + .directory(globals.fs.path.join(projectHome, 'signature')); + + bool isNeedCopySignHistory = true; + // 如果result.bak不存在,代表是环境配置完成后第一次签名,拷贝result.bak。 if (!resultBackup.existsSync()) { copyDirectory(result, resultBackup); - } else { + } else if (!projectSignHistory.existsSync()) { + // 如果projectSignHistory不存在,代表该工程从未进行过签名,此时从 result.bak 还原数据进行签名 result.deleteSync(recursive: true); copyDirectory(resultBackup, result); + } else { + // 如果projectSignHistory存在,代表该工程之前进行过签名,此时拷贝历史签名数据进行签名 + isNeedCopySignHistory = false; + copyDirectory(projectSignHistory, result); } - final List cmdCreateCertAndProfile = []; - cmdCreateCertAndProfile.add('python3'); - cmdCreateCertAndProfile - .add(globals.fs.path.join(signToolHome, 'autosign.py')); - cmdCreateCertAndProfile.add('createAppCertAndProfile'); + if (isNeedCopySignHistory) { + final List cmdCreateCertAndProfile = []; + cmdCreateCertAndProfile.add('python3'); + cmdCreateCertAndProfile + .add(globals.fs.path.join(signToolHome, 'autosign.py')); + cmdCreateCertAndProfile.add('createAppCertAndProfile'); - await invokeCmd( - command: cmdCreateCertAndProfile, - workDirectory: signToolHome, - processManager: globals.processManager, - logger: logger); + await invokeCmd( + command: cmdCreateCertAndProfile, + workDirectory: signToolHome, + processManager: globals.processManager, + logger: logger); + copyDirectory(result, projectSignHistory); + } final List cmdSignHap = []; if (isWindows) { -- Gitee