electron 自動更新靜默安裝到一半就失敗

第一種情況:

原因是我設置了阻止關閉事件

let canQuit = false;
 
mainWindow.on('close', (event) => {
    if (!canQuit) {
        mainWindow.hide();
        mainWindow.setSkipTaskbar(true);
        event.preventDefault();
    }
});
所以在執行 autoUpdater.quitAndInstall(); 方法之前要加上 canQuit = true;

if (process.platform !== 'darwin') {
    canQuit = true;
    autoUpdater.quitAndInstall();
}
問題解決~

 

 

把exe應用默認安裝到了用戶上,然後更新的時候就閃退,或者安裝第二次的時候就閃退!

"electron-builder": "^22.8.1",

特別強調nsis配置:

"nsis": {
      "oneClick": false,
      "perMachine": true, // 配置爲true,不認默認就是安裝到了隱藏文件的用戶上。
      "allowElevation": true,
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "build/icons/icon.ico",
      "uninstallerIcon": "build/icons/icon.ico",
      "installerHeaderIcon": "build/icons/icon.ico",
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "deleteAppDataOnUninstall": true,
      "menuCategory": true,
      "artifactName": "${productName}.${ext}", // 這是是坑千萬別這樣寫,爲了打出來的包名好看,這樣寫會導致你的應用第二次安裝失敗 中途閃退
"artifactName": "${productName}${version}.${ext}", // 你得這樣寫,得加上版本號! 默認爲artifactName字符串-工件文件名模板默認爲${productName} Setup ${version}.${ext}
"shortcutName": "商盟訂貨"
},

 

 

3. package.json的build配置順序很重要

"build": {
    "extraFiles": [],
    "publish": [
      {
        "provider": "generic",
        "url": "https://sm2.35dinghuo.com/download/"
      }
    ],
    "productName": "shangmengdinghuo",
    "appId": "com.35dinghuo.www",
    "directories": {
      "output": "build"
    },
    "nsis": {
      "oneClick": false,
      "perMachine": true,
      "allowElevation": true,
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "build/icons/icon.ico",
      "uninstallerIcon": "build/icons/icon.ico",
      "installerHeaderIcon": "build/icons/icon.ico",
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "deleteAppDataOnUninstall": true,
      "artifactName": "${productName}${version}.${ext}",
      "shortcutName": "商盟訂貨"
    },
    "files": [
      "dist/electron/**/*"
    ],
    "dmg": {
      "contents": [
        {
          "x": 410,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        },
        {
          "x": 130,
          "y": 150,
          "type": "file"
        }
      ]
    },
    "mac": {
      "icon": "build/icons/icon.icns"
    },
    "win": {
      "icon": "build/icons/icon.ico",
      "target": "nsis"
    },
    "linux": {
      "target": "deb",
      "icon": "build/icons"
    }
  },

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章