From 8858c1466f68cd956772239127b67608321a4739 Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Fri, 11 Apr 2025 10:30:11 +0800 Subject: [PATCH] exclude darwin folder from 7z archive in windows --- packages/app-builder-lib/src/binDownload.ts | 10 +++++++--- .../src/codeSign/windowsSignToolManager.ts | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index 9ad96d7284e..e1860525ab8 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -41,7 +41,7 @@ export function getBinFromUrl(name: string, version: string, checksum: string): return getBin(dirName, url, checksum) } -export function getBin(name: string, url?: string | null, checksum?: string | null): Promise { +export function getBin(name: string, url?: string | null, checksum?: string | null, extractExcludePatterns?: string[] | null): Promise { // Old cache is ignored if cache environment variable changes const cacheName = `${process.env.ELECTRON_BUILDER_CACHE}${name}` let promise = versionToPromise.get(cacheName) // if rejected, we will try to download again @@ -50,12 +50,12 @@ export function getBin(name: string, url?: string | null, checksum?: string | nu return promise } - promise = doGetBin(name, url, checksum) + promise = doGetBin(name, url, checksum, extractExcludePatterns) versionToPromise.set(cacheName, promise) return promise } -function doGetBin(name: string, url: string | Nullish, checksum: string | Nullish): Promise { +function doGetBin(name: string, url: string | Nullish, checksum: string | Nullish, extractExcludePatterns: string[] | Nullish): Promise { const args = ["download-artifact", "--name", name] if (url != null) { args.push("--url", url) @@ -63,5 +63,9 @@ function doGetBin(name: string, url: string | Nullish, checksum: string | Nullis if (checksum != null) { args.push("--sha512", checksum) } + + if (extractExcludePatterns != null) { + args.push("--extract-exclude-patterns", extractExcludePatterns.join(",")) + } return executeAppBuilder(args) } diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index 4d799cc65bb..9ec3406a8a4 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -19,6 +19,10 @@ import { SignManager } from "./signManager" import { WindowsSignOptions } from "./windowsCodeSign" export function getSignVendorPath() { + if (process.platform === "win32") { + // exclude darwin folder from 7z archive + return getBin("winCodeSign", null, null, ["darwin/*", "*/darwin/*"]) + } return getBin("winCodeSign") }