a46764fb1b
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
refresh-contributors-wall / Refresh contributors wall cache bust (push) Waiting to run
36 lines
951 B
JavaScript
36 lines
951 B
JavaScript
const path = require("node:path");
|
|
|
|
module.exports = async function notarize(context) {
|
|
if (context.electronPlatformName !== "darwin") {
|
|
return;
|
|
}
|
|
|
|
const appleId = process.env.APPLE_ID;
|
|
const appleIdPassword = process.env.APPLE_APP_SPECIFIC_PASSWORD;
|
|
const teamId = process.env.APPLE_TEAM_ID;
|
|
const missing = [
|
|
["APPLE_ID", appleId],
|
|
["APPLE_APP_SPECIFIC_PASSWORD", appleIdPassword],
|
|
["APPLE_TEAM_ID", teamId],
|
|
]
|
|
.filter(([, value]) => !value)
|
|
.map(([name]) => name);
|
|
|
|
if (missing.length > 0) {
|
|
throw new Error(
|
|
`[tools-pack notarize] missing required Apple notarization env: ${missing.join(", ")}`,
|
|
);
|
|
}
|
|
|
|
const productFilename = context.packager.appInfo.productFilename;
|
|
const appPath = path.join(context.appOutDir, `${productFilename}.app`);
|
|
const { notarize } = await import("@electron/notarize");
|
|
|
|
await notarize({
|
|
appPath,
|
|
appleId,
|
|
appleIdPassword,
|
|
teamId,
|
|
});
|
|
};
|