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, }); } }