javascript - 导出的 Electron APP 在 MacOS 上不起作用

标签 javascript node.js macos electron

我创建了我的第一个 Electron 应用程序并准备发布它。我能够为这两个平台导出它而没有错误:

  • Linux 系统
  • window

但是当我将它导出到 MacOS 时,test.app 不起作用。

我使用的是 MacOS HighSierra,我测试了我能想到的一切,但无法让我的应用程序在 MacOS 上运行。

我不确定在执行之前是否必须将其转换为 dmg 文件,因此我测试了使用本指南将我的应用程序转换为 .dmg:

https://kb.parallels.com/en/123895

但是当我运行 dmg 并尝试安装应用程序时,我再次遇到同样的错误。我真的尝试了一切但没有运气。我希望这里有人知道如何为 MacOS 导出它。

为了导出应用程序,我使用了 electron-packager,这是我的 package.json

   {
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "electron .",
    "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds --app-copyright=\"test",
    "package-win": "electron-packager . test --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"test\" --app-copyright=\"test\"",
    "package-linux": "electron-packager . test --overwrite --asar=true --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds --app-copyright=\"test"
  },
  "dependencies": {},
  "devDependencies": {
    "electron": "1.8.4",
    "electron-packager": "^9.0.1"
  }
}

这是我尝试在 Mac 上运行从 Electron 导出的 test.app 文件时的错误日志:

Process:               test [657]
Path:                  /Volumes/*/test.app/Contents/MacOS/test
Identifier:            com.electron.test
Version:               1.1.1 (1.1.1)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           test [657]
User ID:               501

Date/Time:             2018-04-11 13:23:39.858 -0700
OS Version:            Mac OS X 10.13 (17A291j)
Report Version:        12
Anonymous UUID:        0CF5BE48-84D7-4216-9DC6-58685E649DDD


Time Awake Since Boot: 550 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/Electron Framework.framework/Electron Framework
  Referenced from: /Volumes/*/test.app/Contents/MacOS/test
  Reason: no suitable image found.  Did find:
    /Volumes/VMware Shared Folders/dev/test.app/Contents/MacOS/../Frameworks/Electron Framework.framework/  Electron Framework: file too short
    /Volumes/VMware Shared Folders/dev/app/release/test-darwin-x64/test.app/Contents/MacOS/../Frameworks/   Electron Framework.framework/Electron Framework: stat() failed with errno=1

Binary Images:
       0x103f99000 -        0x103f99ff7 +com.electron.test (1.1.1 - 1.1.1) <    C11B8E11-EDD2-37B9-9AB5-5FE9E97FFFFB> /Volumes/*/test.app/Contents/MacOS/test
       0x10d97a000 -        0x10d9c237f  dyld (513.2) <CEB3F2DA-93CF-3991-AD98-582FAF7023AB> /usr/lib/dyld

最佳答案

如果源代码在 mac 机器上通过 npm start 正常运行,那么这是一个 electron-packager 问题。我建议您尝试使用 electron-builder 进行构建。

注意:您需要一台 Mac 机器来构建 .dmg。

查看zulip/zulip-electron的配置

关于javascript - 导出的 Electron APP 在 MacOS 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49784259/

相关文章:

javascript - 如何从 websocket 连接保存来自客户端的传入文本文件

node.js - 如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob

c++ - 在 Mac OS X 上使用 clang llvm3.6 命令行工具的哈希问题

html - Express 正确定义 post 路由方法

matlab中parpool的Java异常错误

python - 生成简单的音乐/音调?

java - Action 类无法从 jsp 获取更改的值

javascript - 使用 Cypress.io 无法在影子 DOM 中找到按钮

javascript - 如何在禁用的 asp.net 下拉列表中添加警报?

javascript - VueJs - Element Ui - 表格相同 Prop 不同过滤器