Skip to content

Commit c0efe23

Browse files
authored
Rely on @electron/universal for macOS ASAR integrity (#2169)
1 parent 0c2c26a commit c0efe23

File tree

3 files changed

+68
-104
lines changed

3 files changed

+68
-104
lines changed

electron-builder.ts

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import * as os from "node:os";
22
import * as fs from "node:fs";
3-
import * as path from "node:path";
4-
import * as plist from "plist";
5-
import { AfterPackContext, Arch, Configuration as BaseConfiguration, Platform } from "electron-builder";
6-
import { computeData } from "app-builder-lib/out/asar/integrity";
7-
import { readFile, writeFile } from "node:fs/promises";
3+
import { Configuration as BaseConfiguration } from "electron-builder";
84

95
/**
106
* This script has different outputs depending on your os platform.
@@ -46,26 +42,6 @@ interface Configuration extends BaseConfiguration {
4642
} & BaseConfiguration["deb"];
4743
}
4844

49-
async function injectAsarIntegrity(context: AfterPackContext) {
50-
const packager = context.packager;
51-
52-
// We only need to re-generate asar on universal Mac builds, due to https://github.com/electron/universal/issues/116
53-
if (packager.platform !== Platform.MAC || context.arch !== Arch.universal) return;
54-
55-
const resourcesPath = packager.getResourcesDir(context.appOutDir);
56-
const asarIntegrity = await computeData({
57-
resourcesPath,
58-
resourcesRelativePath: "Resources",
59-
resourcesDestinationPath: resourcesPath,
60-
extraResourceMatchers: [],
61-
});
62-
63-
const plistPath = path.join(resourcesPath, "..", "Info.plist");
64-
const data = plist.parse(await readFile(plistPath, "utf8")) as unknown as Writable<plist.PlistObject>;
65-
data["ElectronAsarIntegrity"] = asarIntegrity as unknown as Writable<plist.PlistValue>;
66-
await writeFile(plistPath, plist.build(data));
67-
}
68-
6945
/**
7046
* @type {import('electron-builder').Configuration}
7147
* @see https://www.electron.build/configuration/configuration
@@ -90,9 +66,6 @@ const config: Omit<Writable<Configuration>, "electronFuses"> & {
9066
loadBrowserProcessSpecificV8Snapshot: false,
9167
enableEmbeddedAsarIntegrityValidation: true,
9268
},
93-
afterPack: async (context: AfterPackContext) => {
94-
await injectAsarIntegrity(context);
95-
},
9669
files: [
9770
"package.json",
9871
{
@@ -154,6 +127,7 @@ const config: Omit<Writable<Configuration>, "electronFuses"> & {
154127
entitlements: "./build/entitlements.mac.plist",
155128
icon: "build/icons/icon.icns",
156129
mergeASARs: true,
130+
x64ArchFiles: "**/matrix-seshat/*.node", // hak already runs lipo
157131
},
158132
win: {
159133
target: ["squirrel", "msi"],

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@
8484
"@types/pacote": "^11.1.1",
8585
"@typescript-eslint/eslint-plugin": "^8.0.0",
8686
"@typescript-eslint/parser": "^8.0.0",
87-
"app-builder-lib": "26.0.12",
87+
"app-builder-lib": "26.0.15",
8888
"chokidar": "^4.0.0",
8989
"detect-libc": "^2.0.0",
9090
"electron": "36.0.0",
91-
"electron-builder": "26.0.12",
92-
"electron-builder-squirrel-windows": "26.0.12",
91+
"electron-builder": "26.0.15",
92+
"electron-builder-squirrel-windows": "26.0.15",
9393
"electron-devtools-installer": "^4.0.0",
9494
"eslint": "^8.26.0",
9595
"eslint-config-google": "^0.14.0",
@@ -105,7 +105,6 @@
105105
"matrix-web-i18n": "^3.2.1",
106106
"mkdirp": "^3.0.0",
107107
"pacote": "^21.0.0",
108-
"plist": "^3.1.0",
109108
"prettier": "^3.0.0",
110109
"rimraf": "^6.0.0",
111110
"tar": "^7.0.0",

yarn.lock

Lines changed: 63 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,16 +1017,7 @@
10171017
ajv "^6.12.0"
10181018
ajv-keywords "^3.4.1"
10191019

1020-
"@electron/asar@3.2.18", "@electron/asar@^3.2.7":
1021-
version "3.2.18"
1022-
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.18.tgz#fa607f829209bab8b9e0ce6658d3fe81b2cba517"
1023-
integrity sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==
1024-
dependencies:
1025-
commander "^5.0.0"
1026-
glob "^7.1.6"
1027-
minimatch "^3.0.4"
1028-
1029-
"@electron/asar@3.4.1":
1020+
"@electron/asar@3.4.1", "@electron/asar@^3.3.1":
10301021
version "3.4.1"
10311022
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065"
10321023
integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==
@@ -1068,9 +1059,9 @@
10681059
optionalDependencies:
10691060
global-agent "^3.0.0"
10701061

1071-
"@electron/node-gyp@https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2":
1062+
"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2":
10721063
version "10.2.0-electron.1"
1073-
resolved "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2"
1064+
resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2"
10741065
dependencies:
10751066
env-paths "^2.2.0"
10761067
exponential-backoff "^3.1.1"
@@ -1092,10 +1083,10 @@
10921083
fs-extra "^9.0.1"
10931084
promise-retry "^2.0.1"
10941085

1095-
"@electron/osx-sign@1.3.1":
1096-
version "1.3.1"
1097-
resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz#faf7eeca7ca004a6be541dc4cf7a1bd59ec59b1c"
1098-
integrity sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==
1086+
"@electron/osx-sign@1.3.3":
1087+
version "1.3.3"
1088+
resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.3.3.tgz#af751510488318d9f7663694af85819690d75583"
1089+
integrity sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==
10991090
dependencies:
11001091
compare-version "^0.1.2"
11011092
debug "^4.3.4"
@@ -1104,10 +1095,10 @@
11041095
minimist "^1.2.6"
11051096
plist "^3.0.5"
11061097

1107-
"@electron/rebuild@3.7.0":
1108-
version "3.7.0"
1109-
resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.0.tgz#82e20c467ddedbb295d7f641592c52e68c141e9f"
1110-
integrity sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==
1098+
"@electron/rebuild@3.7.2":
1099+
version "3.7.2"
1100+
resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.2.tgz#8d808b29159c50086d27a5dec72b40bf16b4b582"
1101+
integrity sha512-19/KbIR/DAxbsCkiaGMXIdPnMCJLkcf8AvGnduJtWBs/CBwiAjY1apCqOLVxrXg+rtXFCngbXhBanWjxLUt1Mg==
11111102
dependencies:
11121103
"@electron/node-gyp" "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2"
11131104
"@malept/cross-spawn-promise" "^2.0.0"
@@ -1124,12 +1115,12 @@
11241115
tar "^6.0.5"
11251116
yargs "^17.0.1"
11261117

1127-
"@electron/universal@2.0.1":
1128-
version "2.0.1"
1129-
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.1.tgz#7b070ab355e02957388f3dbd68e2c3cd08c448ae"
1130-
integrity sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==
1118+
"@electron/universal@2.0.3":
1119+
version "2.0.3"
1120+
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.3.tgz#1680df6ced8f128ca0ff24e29c2165d41d78b3ce"
1121+
integrity sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==
11311122
dependencies:
1132-
"@electron/asar" "^3.2.7"
1123+
"@electron/asar" "^3.3.1"
11331124
"@malept/cross-spawn-promise" "^2.0.0"
11341125
debug "^4.3.1"
11351126
dir-compare "^4.2.0"
@@ -2555,30 +2546,30 @@ app-builder-bin@5.0.0-alpha.12:
25552546
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz#2daf82f8badc698e0adcc95ba36af4ff0650dc80"
25562547
integrity sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==
25572548

2558-
app-builder-lib@26.0.12:
2559-
version "26.0.12"
2560-
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.0.12.tgz#2e33df936e0f78d4266b058ece90308ea981eefb"
2561-
integrity sha512-+/CEPH1fVKf6HowBUs6LcAIoRcjeqgvAeoSE+cl7Y7LndyQ9ViGPYibNk7wmhMHzNgHIuIbw4nWADPO+4mjgWw==
2549+
app-builder-lib@26.0.15:
2550+
version "26.0.15"
2551+
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.0.15.tgz#3b68b71d6d9d75eb6b318bcf0c830fd3fc1147d3"
2552+
integrity sha512-KVIsAHkBLaO2fvYVAccGbQPlbGFeGkx7IJXi/nDSBDXaMwHxauIXpAtf/NpopgudG6Ovyixl4QIWeHMPIvx0kg==
25622553
dependencies:
25632554
"@develar/schema-utils" "~2.6.5"
2564-
"@electron/asar" "3.2.18"
2555+
"@electron/asar" "3.4.1"
25652556
"@electron/fuses" "^1.8.0"
25662557
"@electron/notarize" "2.5.0"
2567-
"@electron/osx-sign" "1.3.1"
2568-
"@electron/rebuild" "3.7.0"
2569-
"@electron/universal" "2.0.1"
2558+
"@electron/osx-sign" "1.3.3"
2559+
"@electron/rebuild" "3.7.2"
2560+
"@electron/universal" "2.0.3"
25702561
"@malept/flatpak-bundler" "^0.4.0"
25712562
"@types/fs-extra" "9.0.13"
25722563
async-exit-hook "^2.0.1"
2573-
builder-util "26.0.11"
2574-
builder-util-runtime "9.3.1"
2564+
builder-util "26.0.13"
2565+
builder-util-runtime "9.3.2"
25752566
chromium-pickle-js "^0.2.0"
25762567
config-file-ts "0.2.8-rc1"
25772568
debug "^4.3.4"
25782569
dotenv "^16.4.5"
25792570
dotenv-expand "^11.0.6"
25802571
ejs "^3.1.8"
2581-
electron-publish "26.0.11"
2572+
electron-publish "26.0.13"
25822573
fs-extra "^10.1.0"
25832574
hosted-git-info "^4.1.0"
25842575
is-ci "^3.0.0"
@@ -2824,23 +2815,23 @@ buffer@^5.1.0, buffer@^5.5.0:
28242815
base64-js "^1.3.1"
28252816
ieee754 "^1.1.13"
28262817

2827-
builder-util-runtime@9.3.1:
2828-
version "9.3.1"
2829-
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.3.1.tgz#0daedde0f6d381f2a00a50a407b166fe7dca1a67"
2830-
integrity sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==
2818+
builder-util-runtime@9.3.2:
2819+
version "9.3.2"
2820+
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.3.2.tgz#2a69a239b50e26accf4ed4ea1730406a3117213c"
2821+
integrity sha512-7QDXJ1FwT6d9ZhG4kuObUUPY8/ENBS/Ky26O4hR5vbeoRGavgekS2Jxv+8sCn/v23aPGU2DXRWEeJuijN2ooYA==
28312822
dependencies:
28322823
debug "^4.3.4"
28332824
sax "^1.2.4"
28342825

2835-
builder-util@26.0.11:
2836-
version "26.0.11"
2837-
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.0.11.tgz#ad85b92c93f2b976b973e1d87337e0c6813fcb8f"
2838-
integrity sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA==
2826+
builder-util@26.0.13:
2827+
version "26.0.13"
2828+
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.0.13.tgz#a2c11f8e89e5392719e540d610d70d8413943d74"
2829+
integrity sha512-6b64uHzywaL2KAG+rVcqk/Prta1m3I2Jo1d4d2CrApb6EeSk2V384tmSL0EniH+P8jaNbMp6qhg7cIALw32zRA==
28392830
dependencies:
28402831
"7zip-bin" "~5.2.0"
28412832
"@types/debug" "^4.1.6"
28422833
app-builder-bin "5.0.0-alpha.12"
2843-
builder-util-runtime "9.3.1"
2834+
builder-util-runtime "9.3.2"
28442835
chalk "^4.1.2"
28452836
cross-spawn "^7.0.6"
28462837
debug "^4.3.4"
@@ -3387,14 +3378,14 @@ dir-compare@^4.2.0:
33873378
minimatch "^3.0.5"
33883379
p-limit "^3.1.0 "
33893380

3390-
dmg-builder@26.0.12:
3391-
version "26.0.12"
3392-
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.0.12.tgz#6996ad0bab80a861c9a7b33ee9734d4f60566b46"
3393-
integrity sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==
3381+
dmg-builder@26.0.15:
3382+
version "26.0.15"
3383+
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.0.15.tgz#0cc63db379f9713e8726d5f4ac30709b86720506"
3384+
integrity sha512-RXbDCcrPw2B0q2HIcPI2H7pIFeQiDsLW+ykRVKkW2ke2H3pTgI36r86xLmQZ6397uFCNUjpegRFv6bB+BCWJIA==
33943385
dependencies:
3395-
app-builder-lib "26.0.12"
3396-
builder-util "26.0.11"
3397-
builder-util-runtime "9.3.1"
3386+
app-builder-lib "26.0.15"
3387+
builder-util "26.0.13"
3388+
builder-util-runtime "9.3.2"
33983389
fs-extra "^10.1.0"
33993390
iconv-lite "^0.6.2"
34003391
js-yaml "^4.1.0"
@@ -3478,25 +3469,25 @@ ejs@^3.1.8:
34783469
dependencies:
34793470
jake "^10.8.5"
34803471

3481-
electron-builder-squirrel-windows@26.0.12:
3482-
version "26.0.12"
3483-
resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.0.12.tgz#21ff5d8b764a4feb73f7c25fabcaab5109d60385"
3484-
integrity sha512-kpwXM7c/ayRUbYVErQbsZ0nQZX4aLHQrPEG9C4h9vuJCXylwFH8a7Jgi2VpKIObzCXO7LKHiCw4KdioFLFOgqA==
3472+
electron-builder-squirrel-windows@26.0.15:
3473+
version "26.0.15"
3474+
resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.0.15.tgz#34458b57db75bbaec9a3263bf678517438a19aea"
3475+
integrity sha512-NAPShr9weifHIn2JXdnZ8P4DfQg60NCiYPF42S1yR+S9YQQ/8cG3lSeoZ/LGPFO9Cf3MoXlbwqa+SSpEb3xXYw==
34853476
dependencies:
3486-
app-builder-lib "26.0.12"
3487-
builder-util "26.0.11"
3477+
app-builder-lib "26.0.15"
3478+
builder-util "26.0.13"
34883479
electron-winstaller "5.4.0"
34893480

3490-
electron-builder@26.0.12:
3491-
version "26.0.12"
3492-
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.0.12.tgz#797af2e70efdd96c9ea5d8a8164b8728c90d65ff"
3493-
integrity sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA==
3481+
electron-builder@26.0.15:
3482+
version "26.0.15"
3483+
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.0.15.tgz#db1cd0569e079686107c0c6315435b57fbcb7bb0"
3484+
integrity sha512-1nDY/7bbbORdWPQkIyFPfLfEHR4d22QfI5yec+etFL0y/PdmVz/wcxXc2KRpTQeIt75njm2/ocrtgp7LJvZC3Q==
34943485
dependencies:
3495-
app-builder-lib "26.0.12"
3496-
builder-util "26.0.11"
3497-
builder-util-runtime "9.3.1"
3486+
app-builder-lib "26.0.15"
3487+
builder-util "26.0.13"
3488+
builder-util-runtime "9.3.2"
34983489
chalk "^4.1.2"
3499-
dmg-builder "26.0.12"
3490+
dmg-builder "26.0.15"
35003491
fs-extra "^10.1.0"
35013492
is-ci "^3.0.0"
35023493
lazy-val "^1.0.5"
@@ -3510,14 +3501,14 @@ electron-devtools-installer@^4.0.0:
35103501
dependencies:
35113502
unzip-crx-3 "^0.2.0"
35123503

3513-
electron-publish@26.0.11:
3514-
version "26.0.11"
3515-
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.0.11.tgz#92c9329a101af2836d9d228c82966eca1eee9a7b"
3516-
integrity sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A==
3504+
electron-publish@26.0.13:
3505+
version "26.0.13"
3506+
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.0.13.tgz#04340520e6e9de5262fecfa011658cfcc3fc8917"
3507+
integrity sha512-O5hfHSwli5cegQ4JS3Dp0dZcheex6UCRE/qYyRQvhB6DhSwojiwTnAGEuQCJXc8K8Zxz2lku5Du3VwYHf8d5Lw==
35173508
dependencies:
35183509
"@types/fs-extra" "^9.0.11"
3519-
builder-util "26.0.11"
3520-
builder-util-runtime "9.3.1"
3510+
builder-util "26.0.13"
3511+
builder-util-runtime "9.3.2"
35213512
chalk "^4.1.2"
35223513
form-data "^4.0.0"
35233514
fs-extra "^10.1.0"

0 commit comments

Comments
 (0)