Electron 如何调试电子产品二进制文件

Electron 如何调试电子产品二进制文件,electron,Electron,我无法在我的电子应用程序的内置版本中打开devtools。因此,我想找到另一种解决方案来记录仅在生产版本中发生的任何错误 如果electron应用程序已经构建好,那么有什么好方法可以从该应用程序中获取一些console.log? 显然,我可以通过打开chrome开发工具来调试我的electron应用程序的“开发”版本(运行npm run dev)。但我找不到任何方法在我的生产应用程序中启用它们。 我使用的是最新版本的 感谢您的帮助。在生产中启用Chrome devtools可以通过多种方式完成:

我无法在我的电子应用程序的内置版本中打开devtools。因此,我想找到另一种解决方案来记录仅在生产版本中发生的任何错误

如果electron应用程序已经构建好,那么有什么好方法可以从该应用程序中获取一些console.log? 显然,我可以通过打开chrome开发工具来调试我的electron应用程序的“开发”版本(运行npm run dev)。但我找不到任何方法在我的生产应用程序中启用它们。 我使用的是最新版本的


感谢您的帮助。

在生产中启用Chrome devtools可以通过多种方式完成:

  • 环境变量:
    • 例如,在Windows下
      set ELECTRON\u ENV=development&&myapp.exe
  • 将特殊参数传递到应用程序
    • 例如,
      myapp.exe--debug
  • 通过用户设置调试模式(如果您有持久设置)
  • 打开devtools的菜单项
    • 可以与1-3结合使用。仅在调试模式下使用该菜单项
  • 你可以检查一下1-3。如果已设置,则只需通过
    main window.webContents.openDevTools()打开devtools即可

    我个人使用1,3的组合。四,。我只需解锁一个开发者菜单,它允许我打开devtools或打开userdata文件夹



    如果您还想记录关键错误,那么对于electron来说,这似乎是一个相当流行的选项。

    以下是在Mac上对我有效的方法

  • 在终端类型中
    lldb path/to/build.app
  • 在打开的调试器中,键入运行远程调试端口=8315
  • 。它应该会打开你的应用程序窗口
  • http://localhost:8315/
  • 单击应用程序的名称。例如,
    Webpack应用程序
  • 如果在打开的选项卡中看不到任何内容,请关注应用程序的窗口

  • 在app.on('ready')部分末尾的main/index.js中,只需添加:

    main window.webContents.openDevTools()

    只是为了调试,当electron打开一个空窗口时,开发版本运行良好,这种方式对我非常有帮助


    Debugtron是一款用于在基于电子的应用程序中进行生产调试的应用程序。它也是用Electron构建的。

    在Mac上只需运行
    open/Applications/WhatsApp.app--args--远程调试端口=8315
    ,然后打开
    https://localhost:8315

    使用设置的
    --远程调试端口=8315
    标志启动电子应用程序并导航到
    chrome://inspect/#devices
    铬合金80+. 然后单击配置。。。并添加
    localhost:8315
    作为发现服务器


    然后,等待您的Electron实例出现在设备列表中,然后单击检查。

    执行此操作的方法是使用
    --远程调试端口
    标志

    以信号为例,采取以下步骤:

  • 从CLI启动应用程序
  • 在Google Chrome浏览器中打开调试URL(在本例中为
    http://localhost:39733/
    ),这将打开一个带有应用程序名称的页面
  • 单击打开一个屏幕,您可以单击周围以使用该应用程序,并在devtools中查看输出

  • 或者,您可以打开
    chrome://inspect/#devices
    在Google Chrome浏览器中,单击“检查”(在应用程序名称下方)打开同一窗口

    不适用于我(在Mac上)。使用
    --远程调试端口=8315执行并打开
    http://localhost:8315
    有效。参考答案:如果这个答案对你不起作用,请考虑<代码> -Debug < /Cord>参数保存了我的As.检查可执行控制台消息非常有用!非常感谢您的支持,我不知道
    lldb
    。你把我从一个小时的循环中解救了出来。@Mentor像你这样的评论使得发布答案是值得的哦,天哪!我从来不知道有这样的方法存在,谢谢!我正在点击
    错误:进程已退出,状态为-1
    ,尚不确定这是否与我的应用程序的问题有关,或者我使用
    lldb
    错误。对于遇到相同问题的人,
    /dist/mac/。app/Contents/MacOS/--remote debuging port=8315
    至少可以让我们了解错误的抛出位置,因为它将登录到控制台。我无法到达
    http://127.0.0.1:8315
    显示任何内容。
    signal-desktop --remote-debugging-port