之前用electron+vue给甲方只做了客户端,支持win32 和 win64。
现在甲方要求客户端支持国产操作系统,统信UOS 20.
还得是arm版

第一步 兼容linux

UOS来源于debian 10
兼容UOS的问题即为兼容debian,兼容linux
打出deb包就完事。

  1. vm workstation 安装uos专业版。
  2. package.json

     {
       "name": "name",
       "version": "1.0.35",
       "author": "author",
       "description": "description",
       "homepage": "homepage url", // linux上打包,这选项必填
       "license": "GPL-3.0", // linux上打包,这选项必填
       "main": "./dist/electron/main.js",
         "build": {
         "productName": "productName",
         "appId": "appId",
         "directories": {
           "output": "build"
         },
         "publish": [
           {
             "provider": "generic",
             "url": "http://xxx/linux/uos/arm"
           }
         ],
         "asar": false,
         "files": [
           "dist/electron/**/*"
         ],
       "linux": {
           "icon": "build/icons",
           "target": "deb"
         }
       },
     }
  3. 为了获得root权限,还得申请成为uos开发者

第二步 兼容arm

统信UOS运行在arm处理器上
客户的机器采用 腾锐D2000 ----> 该cpu采用arm64指令集
打包的时候 加入参数arm64就搞定
必须在linux里面进行构建,我在windows下构建arm64版本,会报错。
某个网络请求被拒绝。

2.1 去哪找arm实机?

我去华为云买了一台。
然后再加12块钱买连接外网的服务。
规格是双核麒麟990 cpu + 4g内存
在云上部署,你得自己解决npm install&build时的网络问题。
有树莓派的话,安装一个Ubuntu mate也能测。

2.1.1 在arm版uos上编译遇到问题

  1. 在uos arm上用electron-builder打包,打包程序会错误调用x86的文件导致打包失败,结果还得在x86上打包
  2. uos缺少很多相关的依赖,第一次安装会耗费很多时间。要慢慢等系统安装依赖。

    2.1.2 怎么测试

  3. 没有数字签名,无法在别人的UOS系统上安装。
    因此,在没有上架前,你得成为uos开发者
    别人的测试机也得登录uos开发者
03-05 15:51