notarize.js 869 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * notarize.js
  3. *
  4. * @see https://oldj.net/blog/2019/12/29/electron-builder-sign-and-notarize-for-macos
  5. */
  6. require('dotenv').config()
  7. const { notarize } = require('electron-notarize')
  8. exports.default = async function notarizing (context) {
  9. const appName = context.packager.appInfo.productFilename
  10. const { electronPlatformName, appOutDir } = context
  11. if (electronPlatformName !== 'darwin') {
  12. return
  13. }
  14. let appPath = `${appOutDir}/${appName}.app`
  15. let { appleId, appBundleId, ascProvider, appleIdPassword } = process.env
  16. if (!appleIdPassword) {
  17. appleIdPassword = `@keychain:Application Loader: ${appleId}`
  18. }
  19. if (!appleId || !appBundleId || !ascProvider || !appleIdPassword) {
  20. console.log('Not notarized.')
  21. return
  22. }
  23. return await notarize({
  24. appBundleId,
  25. appPath,
  26. ascProvider,
  27. appleId,
  28. appleIdPassword
  29. })
  30. }