cozy-labs/cozy-desktop

View on GitHub
build/afterSignHook.js

Summary

Maintainability
A
0 mins
Test Coverage
// See: https://medium.com/@TwitterArchiveEraser/notarize-electron-apps-7a5f988406db

const fs = require('fs')
const path = require('path')
// eslint-disable-next-line node/no-unpublished-require
const electron_notarize = require('@electron/notarize')

module.exports = async function (params) {
  // Only notarize the app on Mac OS only.
  if (process.platform !== 'darwin') {
    return
  }
  // eslint-disable-next-line no-console
  console.log('afterSign hook triggered', params)

  // Same appId in electron-builder.
  const appId = 'io.cozy.desktop'

  const appPath = path.join(
    params.appOutDir,
    `${params.packager.appInfo.productFilename}.app`
  )
  if (!fs.existsSync(appPath)) {
    throw new Error(`Cannot find application at: ${appPath}`)
  }

  // eslint-disable-next-line no-console
  console.log(`Notarizing ${appId} found at ${appPath}`)

  await electron_notarize.notarize({
    appPath: appPath,
    appleId: process.env.APPLE_ID,
    appleIdPassword: process.env.APPLE_ID_PASSWORD,
    teamId: process.env.APPLE_TEAM_ID
  })

  // eslint-disable-next-line no-console
  console.log(`Done notarizing ${appId}`)
}