Javascript 电子浏览器窗口在沙盒模式下显示白色屏幕

Javascript 电子浏览器窗口在沙盒模式下显示白色屏幕,javascript,macos,electron,sandbox,Javascript,Macos,Electron,Sandbox,我有电子与反应应用程序 我用electron packager创建了我的构建 electron-packager . --ignore=./.gitignore --ignore=./.node_modules --ignore=./webpack.config.js --platform=mas --arch=all --icon='./electron.icns' --app-bundle-id='com.my.id' --helper-bundle-id='com.my.id.helper

我有电子与反应应用程序

我用electron packager创建了我的构建

electron-packager . --ignore=./.gitignore --ignore=./.node_modules --ignore=./webpack.config.js --platform=mas --arch=all --icon='./electron.icns' --app-bundle-id='com.my.id' --helper-bundle-id='com.my.id.helper' --app-category-type=public.app-category.utilities --overwrite --asar=true --app-version='1.0.4' --out=release-builds
构建目前运行良好,之后我使用脚本对应用程序进行签名

#!/bin/bash

# Name of your app.
APP="SmarterBack"
# The path of your app to sign.
APP_PATH="release-builds/SmarterBack-mas-x64/SmarterBack.app"
# APP_PATH="release-builds/SmarterBack-darwin-x64/SmarterBack.app"
# The path to the location you want to put the signed package.
RESULT_PATH="/Users/admin/Desktop/$APP.pkg"
# The name of certificates you requested.
APP_KEY="3rd Party Mac Developer Application: JENGO LLC (63UV74H5Q5)"
INSTALLER_KEY="3rd Party Mac Developer Installer: JENGO LLC (63UV74H5Q5)"
# The path of your plist files.
CHILD_PLIST="child.plist"
PARENT_PLIST="parent.plist"

FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/Electron Framework.framework"

codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$FRAMEWORKS_PATH/$APP Helper NP.app/"
codesign --entitlements "$CHILD_PLIST" -v -f -s "$APP_KEY" "$APP_PATH/Contents/MacOS/$APP"

codesign --entitlements "$PARENT_PLIST" -v -f -s "$APP_KEY" "$APP_PATH"
在我签署我的应用程序后,我的浏览器窗口开始出现空白屏幕,无法加载任何内容。经过一些调试后,我注意到我不能使用require在index.html中导入我的js、css。我开始做更多的研究,我发现我必须在我的窗口中使用“沙盒:真”

window = new BrowserWindow({
    webPreferences: {
        sandbox: true,
        nodeIntegration: false
    }
})
我甚至尝试将preload.js用于webPreferences

var hostProcess = process;
var hostRequire = require;

process.once('loaded', function(){

  global.host = {
    process: hostProcess,
    crash: function () {
      hostProcess.crash();
    },
  };

  global.host.ipc = hostRequire('ipc');
  global.host.ipc = hostRequire('fs');
});
My Index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'none';script-src 'self'">
    <title>SmarterBack Preferences</title>
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="quill.snow.css">
    <link rel="stylesheet" type="text/css" href="Main.css">
</head>

<body>
    <div id="main"></div>
</body>

<script src="js/libs/createjs/preloadjs-0.6.2.min.js"></script> 
<script src="js/BRFv4Demo.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="/Main.js"></script>
</html>

智能背包偏好
就目前而言,一切似乎都不起作用。当应用程序处于沙盒模式时,我不能使用任何节点进程,我的html也不需要任何东西,所以我只需要一个空白屏幕。我看到过许多文章都有这样的问题,但还没有找到解决问题的方法

更新:经过大量测试,似乎唯一不能使用require的文件是my Main.js(这是我的网页生成文件),所以现在我将查看我的网页配置,或者看看我的react是否是问题所在