You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.1 KiB
62 lines
2.1 KiB
/* eslint-disable @typescript-eslint/no-var-requires, no-console */ |
|
require("dotenv").config(); |
|
const path = require("path"); |
|
|
|
const { deepAssign } = require("builder-util"); |
|
const { notarize } = require("electron-notarize"); |
|
const fse = require("fs-extra"); |
|
|
|
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, |
|
}); |
|
} |
|
}
|
|
|