从 Dock 运行时打包的 Electron 应用程序不会启动,但从终端运行时运行良好

Posted

技术标签:

【中文标题】从 Dock 运行时打包的 Electron 应用程序不会启动,但从终端运行时运行良好【英文标题】:Packaged Electron app does not launch when run from Dock but works fine when run from Terminal 【发布时间】:2019-09-06 00:35:09 【问题描述】:

所以这有点奇怪。我有一个使用 electron-builder 打包的电子应用程序。该应用程序尝试使用 child_process.spawn() 生成 Java 进程,并使用 minimal-request-promise 每 500 毫秒轮询一次,以查看本地 API 是否已启动。

当我从终端运行应用程序时 open myApp.app/Contents/MacOS/myapp 它工作正常。我在SpringBoot 应用程序启动时看到控制台输出,一旦初始化,BrowserWindow 就会弹出。

但是,如果我只运行 myApp.app(从 Dock、Spotlight、终端等),图标会在 Dock 中弹出,但没有任何反应,即使在 10 分钟后也不会发生。

我假设这是因为生成进程时出现错误(并且由于我们没有运行可执行文件,我们没有得到终端输出这样说..grr)。

尝试和调试它的最佳方法是什么?除非是权限问题,否则我无法弄清楚为什么它会以一种方式而不是另一种方式工作?

【问题讨论】:

【参考方案1】:

原来问题在于我的 API 抛出异常,因为它试图创建的数据库文件位于打包的应用程序中。更改了位置,现在一切正常。

对于处于类似位置的任何人,您可以使用electron-log 登录文件而不是控制台(因为您没有来自.app 文件的控制台)。

【讨论】:

以上是关于从 Dock 运行时打包的 Electron 应用程序不会启动,但从终端运行时运行良好的主要内容,如果未能解决你的问题,请参考以下文章

electron 打包mac的安装包没有菜单的问题解决

在Electron中打包的Angular app中运行shell脚本

Electron入门应用打包exe(windows)

Electron“安装已中止,安装程序为成功地运行完成”

Electron“安装已中止,安装程序未成功地运行完成”

Electron – 基础学习: 项目打包成exe桌面应用