From 7a3e4b1e6a854f249750d0b2e855137b01fc0819 Mon Sep 17 00:00:00 2001 From: Ramiro Saenz Date: Thu, 19 Mar 2020 20:35:04 -0300 Subject: [PATCH] Notarization of MacOS app --- package-lock.json | 58 +++++++++++++++++++++++++++++++-- package.json | 4 +++ resources/installer/notarize.js | 17 ++++++++++ 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 resources/installer/notarize.js diff --git a/package-lock.json b/package-lock.json index 062f358c..89575469 100644 --- a/package-lock.json +++ b/package-lock.json @@ -843,7 +843,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", - "dev": true + "dev": true, + "optional": true }, "boxen": { "version": "3.2.0", @@ -2280,6 +2281,59 @@ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", "integrity": "sha512-v+Af5W5z99ehhaLOfE9eTSXUwjzh2wFlQjz51dvkZ6ZIrET6OB/zAZPvsuwT6tm3t5x+M1r+Ed3U3xtPZYAyuQ==" }, + "electron-notarize": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.2.1.tgz", + "integrity": "sha512-oZ6/NhKeXmEKNROiFmRNfytqu3cxqC95sjooG7kBXQVEUSQkZnbiAhxVh5jXngL881G197pbwpeVPJyM7Ikmxw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "electron-osx-sign": { "version": "0.4.10", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz", @@ -3613,7 +3667,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } diff --git a/package.json b/package.json index 8aaf2389..96965910 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,8 @@ "target": [ "default" ], + "hardenedRuntime": true, + "gatekeeperAssess": false, "entitlements": "resources/installer/entitlements.mac.plist", "entitlementsInherit": "resources/installer/entitlements.mac.plist", "extendInfo": { @@ -84,6 +86,7 @@ "dmg": { "title": "Rambox", "iconSize": 128, + "sign": false, "contents": [ { "x": 355, @@ -195,6 +198,7 @@ "csvjson": "4.3.3", "electron": "7.1.12", "electron-builder": "21.2.0", + "electron-notarize": "0.2.1", "electron-packager": "^12.1.0", "mocha": "^5.2.0", "spectron": "^3.8.0" diff --git a/resources/installer/notarize.js b/resources/installer/notarize.js new file mode 100644 index 00000000..5d2b5562 --- /dev/null +++ b/resources/installer/notarize.js @@ -0,0 +1,17 @@ +const { notarize } = require('electron-notarize'); + +exports.default = async function notarizing(context) { + const { electronPlatformName, appOutDir } = context; + if (electronPlatformName !== 'darwin') { + return; + } + + const appName = context.packager.appInfo.productFilename; + + return await notarize({ + appBundleId: 'com.grupovrs.ramboxce', + appPath: `${appOutDir}/${appName}.app`, + appleId: 'saenzramiro@gmail.com', + appleIdPassword: process.env.APPLE_ID_PWD + }); +}; \ No newline at end of file