reactjs - 从网站下载时,Electron .AppImage 分发应用程序无法打开

标签 reactjs linux electron electron-builder appimage

我有一个 Electron 应用,我必须发布它,但我在使用 Linux 发行版时遇到问题。对于 Linux,我决定构建一个 .AppImage 分发文件,问题是构建的 AppImage 在构建应用程序的主机以及其他计算机上成功启动。但是,当我尝试在需要下载该应用程序的网站上上传该应用程序并启动下载的应用程序时,会出现这样的屏幕。

The screen which appears, when launching the app, downloaded from the internet

这是我的 package.json 文件的内容:

{
  "name": "electron-app",
  "productName": "electronApp",
  "main": "public/electron.js",
  "version": "0.1.0",
  "private": true,
  "homepage": "./",
  "author": {
    "name": "John Doe",
    "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b5c1d0c6c1f5c1d0c6c19bd6dad8" rel="noreferrer noopener nofollow">[email protected]</a>"
  },
  "build": {
    "appId": "app.com.electron",
    "productName": "electronApp",
    "linux": {
      "target": [
        {
          "target": "AppImage",
          "arch": [
            "x64",
            "ia32",
            "armv7l",
            "arm64”"
          ],
        }
      ]
     },
    "files": [
      "build/**/*",
      "node_modules/**/*"
    ],
    "directories": {
      "buildResources": "assets"
    }
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "dependencies": {
    "apexcharts": "^3.10.1",
    "apisauce": "^1.0.3",
    "cross-env": "^6.0.3",
    "electron-is-dev": "^1.1.0",
    "electron-root-path": "^1.0.16",
    "moment": "^2.24.0",
    "node-sass": "^4.12.0",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-code-input": "^3.8.1",
    "react-dom": "^16.8.6",
    "react-loading-overlay": "^1.0.1",
    "react-notification-system": "^0.3.0",
    "react-redux": "^7.1.0",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.0.1",
    "react-tradingview-widget": "^1.3.2",
    "react-web-tabs": "^1.0.1",
    "redux": "^4.0.1",
    "redux-persist": "^5.10.0",
    "reduxsauce": "^1.1.0",
    "seamless-immutable": "^7.1.4"
  },
  "scripts": {
    "lint": "eslint",
    "build": "yarn react-build && yarn electron-build",
    "react-start": "react-scripts start",
    "react-build": "react-scripts build",
    "react-test": "react-scripts test --env=jsdom",
    "react-eject": "react-scripts eject",
    "electron-postinstall": "electron-builder install-app-deps",
    "electron-start": "concurrently \"cross-env BROWSER=none yarn react-start\" \"wait-on http://localhost:3000 && electron .\"",
    "electron-build": "electron-builder"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/jest": "^24.0.15",
    "@types/react": "^16.8.22",
    "@types/react-redux": "^7.1.1",
    "babel-eslint": "10.0.1",
    "concurrently": "^5.0.0",
    "electron": "^7.1.1",
    "electron-builder": "^21.2.0",
    "eslint": "5.16.0",
    "eslint-plugin-react": "^7.14.2",
    "wait-on": "^3.3.0"
  }
}

我不知道,也许我需要一些额外的依赖项,例如 .deb 版本,但我真的不知道问题出在哪里......

最佳答案

这是桌面环境/文件管理器问题。他们正确地识别了文件类型,但他们没有执行它(正如他们应该的那样)。

此问题的可能原因是 AppImage 文件没有执行权限(下载文件时不会保留它们)。直接的解决方案是要求您的用户使其可执行。您可以通过在文件管理器的文件属性选项卡中检查“允许执行”权限或使用命令行指令来实现此目的:

chmod +x ./MyApp.AppImage

这里也有解释 https://docs.appimage.org/introduction/quickstart.html#ref-how-to-run-appimage

关于reactjs - 从网站下载时,Electron .AppImage 分发应用程序无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61273334/

相关文章:

javascript - 如何在 React 应用中导入 highcharts 子模块

c - 使用完帧缓冲区后如何恢复控制台测试?

Electronjs window.require 不是函数

javascript - 如何编辑 Amcharts X 轴?

javascript - 使用 React refs 的 scrollIntoView

javascript - Facebook React.js 示例错误?

linux - 如何在 linux 内核中映射一个文件?

linux - git 在多个文件名和文件夹名中查找并重命名一个字符串

Javascript navigator.mediaDevices.getUserMedia 在源中获取宽度和高度

python - 创建/分发基于 Jupyter Notebook/Jupyter Lab 的独立应用程序的最佳方式?