Electron JS Mac OS X构建失败,托盘图标为.png格式

Electron JS Mac OS X构建失败,托盘图标为.png格式,electron,electron-packager,Electron,Electron Packager,对于初学者来说,我为“普通”(非托盘)应用程序构建的版本与electron packager和此命令配合使用效果良好 npx electron-packager . --overwrite --plaorm=darwin --arch=x64 --icon=aicons/1024.icns --prune=true --out=release-builds 我最近重新设计了我的代码,所以现在是一个托盘应用程序 所以我有 tray = new Tray('icons/elektro.png'

对于初学者来说,我为“普通”(非托盘)应用程序构建的版本与electron packager和此命令配合使用效果良好

npx electron-packager . --overwrite --plaorm=darwin --arch=x64 --icon=aicons/1024.icns --prune=true --out=release-builds
我最近重新设计了我的代码,所以现在是一个托盘应用程序

所以我有

  tray = new Tray('icons/elektro.png')
  tray.setToolTip('elektro')
这在npm start中可以正常工作,但当我使用electron packager构建.app时,会出现以下错误:

Uncaught Exception:
TypeError: Error processing argument at index 0, conversion failure from icons/elektro.png
    at App.<anonymous> (/Users/gurugeek/elektro/release-builds/elektro-darwin-x64/elektro.app/Contents/Resources/app/main.js:48:10)
    at App.emit (events.js:205:15)
未捕获异常:
TypeError:处理索引0处的参数时出错,从icons/elektro.png转换失败
在应用程序。(/Users/gurugeek/elektro/release builds/elektro-darwin-x64/elektro.app/Contents/Resources/app/main.js:48:10)
在App.emit(events.js:205:15)
我假设问题与用于托盘图标的.png有关。如果我将其更改为.icns格式,它将不再适用于npm start。你知道怎么解决这个问题吗


我用的是electron 6,好的,这个问题与路径有关。这看起来很简单,但在大多数情况下,.app文件只是死掉而没有任何错误。这个问题在任何地方都没有很好的记录,所以我把它留给了发现相同问题的人:

  const path = require('path');
  var iconPath = path.join(__dirname, '/icons/elektro.png') // your png tray icon
  let trayIcon = nativeImage.createFromPath(iconPath);
  // if needed resize to 16x16 but mac also accepted the 24 icon
  // trayIcon = trayIcon.resize({
  //    width: 16,
  //    height: 16
  //  });

  tray = new Tray(trayIcon)