简体   繁体   English

电子应用程序在导出为 Snap 时无法获取 ipaddress

[英]Electron app Failed to get ipaddress when exported as Snap

I am trying to make a snap for my little application “ OpenSpeedTest-Server ” This is a simple network performance estimation tool.我正在尝试为我的小应用程序“ OpenSpeedTest-Server ”做一个快照,这是一个简单的网络性能评估工具。 It is working fine on Windows, Mac and Linux (DEB).它在 Windows、Mac 和 Linux (DEB) 上运行良好。 When i Export the same in Snap, Application unable to get the client device ip address.当我在 Snap 中导出相同的内容时,应用程序无法获取客户端设备的 IP 地址。

i try “confinement”: “classic”, and plugs network observe etc. but nothing worked.我尝试“禁闭”:“经典”,并插入网络观察等,但没有任何效果。

I added “@davidwinter/electron-forge-maker-snap” DevDependency manually and exporting it as snap actually working.我手动添加了“@davidwinter/electron-forge-maker-snap” DevDependency 并将其导出为 snap 实际工作。

The only problem is application cannot get device ip address.唯一的问题是应用程序无法获取设备 IP 地址。

在此处输入图片说明

My Electron Forge package.json我的 Electron Forge package.json

{
  "name": "OpenSpeedTest-Server",
  "productName": "OpenSpeedTest-Server",
  "version": "2.1.0",
  "description": "Network Speed Test Server - by OpenSpeedTest",
  "main": "src/index.js",
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish",
    "lint": "echo \"No linting configured\""
  },
  "keywords": [],
  "author": {
    "name": "OpenSpeedTest",
    "email": "support@openspeedtest.com"
  },
  "license": "MIT",
  "config": {
    "confinement": "devmode",
    "forge": {
      "packagerConfig": {
        "icon": "src/icon.png"
      },
      "makers": [
        {
          "name": "@davidwinter/electron-forge-maker-snap",
          "config": {
            "name": "OpenSpeedTest_Server",
            "categories": [
              "Utility"
            ]
          }
        },
        {
          "name": "@electron-forge/maker-zip",
          "platforms": [
            "darwin"
          ]
        },
        {
          "name": "@electron-forge/maker-deb",
          "config": {}
        },
        {
          "name": "@electron-forge/maker-rpm",
          "config": {}
        }
      ]
    }
  },
  "dependencies": {
    "@davidwinter/electron-forge-maker-snap": "^2.0.4",
    "cors": "^2.8.5",
    "electron-squirrel-startup": "^1.0.0",
    "express": "^4.17.1",
    "internal-ip": "^6.2.0",
    "tcp-port-used": "^1.0.2"
  },
  "devDependencies": {
    "@electron-forge/cli": "^6.0.0-beta.57",
    "@electron-forge/maker-deb": "^6.0.0-beta.57",
    "@electron-forge/maker-rpm": "^6.0.0-beta.57",
    "@electron-forge/maker-squirrel": "^6.0.0-beta.57",
    "@electron-forge/maker-zip": "^6.0.0-beta.57",
    "electron": "13.1.2"
  }
}
{
“name”: “@davidwinter/electron-forge-maker-snap”,
“config”: {
“name”: “OpenSpeedTest_Server”,
“categories”: [
“Utility”
],
“stagePackages”: [
“default”,
“iproute2”
]
}
},

My devDep.我的开发部

},
"dependencies": {
"cors": "^2.8.5",
"electron-squirrel-startup": "^1.0.0",
"express": "^4.17.1",
"internal-ip": "^6.2.0",
"tcp-port-used": "^1.0.2"
},

Internal IP is responsible for getting ip address.内部IP负责获取IP地址。

https://www.npmjs.com/package/internal-ip The module returns the address of the internet-facing interface, as determined from the default gateway. https://www.npmjs.com/package/internal-ip该模块返回由默认网关确定的面向 Internet 的接口的地址。 When the address cannot be determined for any reason, undefined will be returned.当由于某种原因无法确定地址时,将返回 undefined。 The module relies on operating systems tools.该模块依赖于操作系统工具。 On Linux and Android, the ip command must be available, which depending on distribution might not be installed by default.在 Linux 和 Android 上,ip 命令必须可用,默认情况下可能不会安装取决于发行版。 It is usually provided by the iproute2 package.它通常由 iproute2 包提供。 .v4.sync() and .v6.sync() are not supported in browsers and just return undefined. .v4.sync() 和 .v6.sync() 在浏览器中不受支持,只返回 undefined。

so we need to add iproute2 in stagePackages for get this to work on snap.所以我们需要在 stagePackages 中添加 iproute2 以使其在 snap 上工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM