const { notarize } = require(“electron-notarize”); const YAML = require(“yaml”); const fs = require(“fs”); const { promisify } = require(“util”);
const readFile = promisify(fs.readFile);
exports.default = async function notarizeMacOS(context) {
const { electronPlatformName, appOutDir } = context; if (electronPlatformName !== "darwin") { return; } if (!process.env.CI) { console.warn("Skipping notarizing step. Packaging is not running in CI"); return; } if (!("APPLE_ID" in process.env && "APPLE_ID_PASS" in process.env)) { console.warn( "Skipping notarizing step. APPLE_ID and APPLE_ID_PASS env variables must be set", ); return; } const electronBuilderConfig = await readFile( "../../config/electron-builder.yml", "utf8", ); const buildInfo = YAML.parse(electronBuilderConfig); const appName = context.packager.appInfo.productFilename; await notarize({ appBundleId: buildInfo.appId, appPath: `${appOutDir}/${appName}.app`, appleId: process.env.APPLE_ID, appleIdPassword: process.env.APPLE_ID_PASS, });
};