|  |  |  | const { notarize } = require('electron-notarize'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |  Pre-requisites: https://github.com/electron/electron-notarize#prerequisites
 | 
					
						
							|  |  |  |     1. Generate an app specific password | 
					
						
							|  |  |  |     2. Export SIGNING_APPLE_ID, SIGNING_APP_PASSWORD, SIGNING_TEAM_ID environment variables | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |   Notarizing: https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const log = msg => console.log(`\n${msg}`); | 
					
						
							|  |  |  | const isEmpty = v => !v || v.length === 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exports.default = async function notarizing(context) { | 
					
						
							|  |  |  |   const { electronPlatformName, appOutDir } = context; | 
					
						
							|  |  |  |   if (electronPlatformName !== 'darwin') { | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   log('Notarizing mac application'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const appName = context.packager.appInfo.productFilename; | 
					
						
							|  |  |  |   const { SIGNING_APPLE_ID, SIGNING_APP_PASSWORD, SIGNING_TEAM_ID } = process.env; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (isEmpty(SIGNING_APPLE_ID) || isEmpty(SIGNING_APP_PASSWORD)) { | 
					
						
							|  |  |  |     log('SIGNING_APPLE_ID or SIGNING_APP_PASSWORD not set.\nTerminating noratization.'); | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const options = { | 
					
						
							|  |  |  |     appBundleId: 'org.getsession.desktop', | 
					
						
							|  |  |  |     appPath: `${appOutDir}/${appName}.app`, | 
					
						
							|  |  |  |     appleId: SIGNING_APPLE_ID, | 
					
						
							|  |  |  |     appleIdPassword: SIGNING_APP_PASSWORD, | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  |   if (!isEmpty(SIGNING_TEAM_ID)) options.ascProvider = SIGNING_TEAM_ID; | 
					
						
							|  |  |  |   return notarize(options); | 
					
						
							|  |  |  | }; |