diff --git a/patches/electron-builder-fix-macos-sign.patch b/patches/electron-builder-fix-macos-sign.patch new file mode 100644 index 0000000000..6638e8fc71 --- /dev/null +++ b/patches/electron-builder-fix-macos-sign.patch @@ -0,0 +1,22 @@ +diff --git a/node_modules/app-builder-lib/electron-osx-sign/sign.js b/node_modules/app-builder-lib/electron-osx-sign/sign.js +index 3b85d83c..87da4e57 100644 +--- a/node_modules/app-builder-lib/electron-osx-sign/sign.js ++++ b/node_modules/app-builder-lib/electron-osx-sign/sign.js +@@ -119,6 +119,17 @@ async function verifySignApplicationAsync (opts) { + function signApplicationAsync (opts) { + return walkAsync(getAppContentsPath(opts)) + .then(async function (childPaths) { ++ /** ++ * Sort the child paths by how deep they are in the file tree. Some arcane apple ++ * logic expects the deeper files to be signed first otherwise strange errors get ++ * thrown our way ++ */ ++ childPaths = childPaths.sort((a, b) => { ++ const aDepth = a.split(path.sep).length ++ const bDepth = b.split(path.sep).length ++ return bDepth - aDepth ++ }) ++ + function ignoreFilePath (opts, filePath) { + if (opts.ignore) { + return opts.ignore.some(function (ignore) {