require("dotenv").config(); const path = require("path"); const fse = require("fs-extra"); const { notarize } = require("electron-notarize"); const { deepAssign } = require("builder-util"); exports.default = run; async function run(context) { console.log("## After sign"); // console.log(context); const appName = context.packager.appInfo.productFilename; const appPath = `${context.appOutDir}/${appName}.app`; const macBuild = context.electronPlatformName === "darwin"; const copyPlugIn = ["darwin", "mas"].includes(context.electronPlatformName); if (copyPlugIn) { // Copy Safari plugin to work-around https://github.com/electron-userland/electron-builder/issues/5552 const plugIn = path.join(__dirname, "../PlugIns"); if (fse.existsSync(plugIn)) { fse.mkdirSync(path.join(appPath, "Contents/PlugIns")); fse.copySync( path.join(plugIn, "safari.appex"), path.join(appPath, "Contents/PlugIns/safari.appex") ); // Resign to sign safari extension if (context.electronPlatformName === "mas") { const masBuildOptions = deepAssign( {}, context.packager.platformSpecificBuildOptions, context.packager.config.mas ); if (context.targets.some((e) => e.name === "mas-dev")) { deepAssign(masBuildOptions, { type: "development", }); } if (context.packager.packagerOptions.prepackaged == null) { await context.packager.sign(appPath, context.appOutDir, masBuildOptions, context.arch); } } else { await context.packager.signApp(context, true); } } } if (macBuild) { console.log("### Notarizing " + appPath); const appleId = process.env.APPLE_ID_USERNAME || process.env.APPLEID; const appleIdPassword = process.env.APPLE_ID_PASSWORD || `@keychain:AC_PASSWORD`; return await notarize({ appBundleId: "com.bitwarden.desktop", appPath: appPath, appleId: appleId, appleIdPassword: appleIdPassword, }); } }