· 4 years ago · Jan 01, 2021, 12:04 AM
1// See: https://medium.com/@TwitterArchiveEraser/notarize-electron-apps-7a5f988406db
2
3const fs = require('fs');
4const path = require('path');
5var electron_notarize = require('electron-notarize');
6
7module.exports = async function (params) {
8 // Only notarize the app on Mac OS only.
9 if (process.platform !== 'darwin') {
10 return;
11 }
12 console.log('afterSign hook triggered', params);
13
14 // Same appId in electron-builder.
15 let appId = '****.com.****.****'
16
17 let appPath = path.join(params.appOutDir, `${params.packager.appInfo.productFilename}.app`);
18 if (!fs.existsSync(appPath)) {
19 throw new Error(`Cannot find application at: ${appPath}`);
20 }
21
22 console.log(`Notarizing ${appId} found at ${appPath}`);
23
24 try {
25 await electron_notarize.notarize({
26 appBundleId: appId,
27 appPath: appPath,
28 appleId: "*****@gmail.com",
29 appleIdPassword: "***-****-***-****",
30 });
31 } catch (error) {
32 console.error(error);
33 }
34
35 console.log(`Done notarizing ${appId}`);
36};