我正在尝试使用 Electron 构建 Windows 和 Mac OS 应用程序,但遇到了障碍。
简而言之,如果我尝试在 Mac OS Big Sur 上直接使用 Electron 运行应用程序(而不是构建 Mac 应用程序然后运行它),我会返回以下错误:
[35941:0821/171720.038162:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
Run Code Online (Sandbox Code Playgroud)
我使用以下命令直接使用 Electron 运行package.json
:
"scripts": {
...
"test": "electron main.js",
...
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我可以访问的唯一 Mac 操作系统环境是 Big Sur,因此还没有在早期版本的 Mac 操作系统上尝试过此操作,但从谷歌搜索看来,此错误可能与 Big Sur 加强的安全性/沙箱限制有关 - 但我猜测关于那个。
无论如何,经过一些谷歌搜索后,一些建议表明尝试在没有应用程序沙箱的情况下运行,即将其添加到main.js
:
app.commandLine.appendSwitch('no-sandbox');
Run Code Online (Sandbox Code Playgroud)
这一切都很好并且有效。
但是,如果我想构建和分发针对 Mac 应用商店的签名 Mac 应用程序或只是签名的沙盒 DMG 或 PKG 安装程序,那么这将不适合。
如果我删除上述no-sandbox
命令main.js
并在我的权利中指定应用程序沙箱,plist
如下所示,生成的签名应用程序将不会运行:
<key>com.apple.security.app-sandbox</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
该应用程序尝试打开并关闭。我可以尝试在命令行中运行,open <appname>.app
但这会在控制台中引发以下错误:
The application cannot be …
Run Code Online (Sandbox Code Playgroud)