最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Electron应用篇(打包和热更新)

    正文概述 掘金(阿里云数据库前端团队)   2020-12-28   1027

    打包

    打包是开发 electron 应用中最后的一个环节,也是最重要的一个步骤。如果打包遇到问题,那你前面的所有努力也就白费了。目前官方的打包工具主要包括2种,分别是 electron-packager 和 electron-builder,下面分别介绍这两种打包方式的区别以及注意事项。

    electron-packager

    • 安装依赖包
    // For use in npm scripts (recommended)
    npm install electron-packager --save-dev
    
    • 配置package.json脚本
    "scripts": {
       "start": "electron .",
       "packageOS": "electron-packager . <appname> --platform=mas --arch=x64 --icon=dms --out=./dist --asar --app-version=1.0.0",
       "packageWin64": "electron-packager . <appname> --platform=win32 --arch=x64 --icon=dms --out=./dist --asar --app-version=1.0.0",
       "packageWin32": "electron-packager . <appname> --platform=win32 --arch=ia32 --icon=dms --out=./dist --asar --app-version=1.0.0"
    }
    
    • 优缺点

    1)配置简单,易上手 2)直接生成.app, .exe 等可执行的文件,用户无需安装,打开即可使用。(这样的缺点是包体积会较大,且不能自动添加到用户的快捷方式或者应用程序里面) 3)打包很慢,卡住不动 4)不支持跨平台打包

    Electron应用篇(打包和热更新)

    electron-builder

    • 安装依赖包
    // Yarn is strongly recommended instead of npm.
    yarn add electron-builder --dev
    
    • 配置package.json脚本
      "scripts": {
        "start": "electron .",
        "distOS": "electron-builder --mac",
        "distWin64": "electron-builder --win --x64",
        "distWin32": "electron-builder --win --ia32",
        "postinstall": "electron-builder install-app-deps",
      },
    
    • 配置打包项(配置在package.json的build属性下)

    1)mac下的配置项,mac的配置项比较简单,只需指定打包图标即可,其他的走默认配置项就可以

    "build": {
        "productName": "DMS",
        "appId": "com.electron.dms.1.0.0",
        "asar": false,
        "mac": {
          "icon": "icons/dms.icns",
          "target": "default"
        },
      },
    

    2)windows

    "build": {
        "productName": "DMS",
        "appId": "com.electron.dms.1.0.0",
        "asar": false,
        "win": {
          "icon": "icons/dms.ico",
          "target": [
            {
              "target": "nsis",
              "arch": [
                "x64"
              ]
            }
          ]
        },
        "nsis": {
          "oneClick": false,
          "allowElevation": true,
          "allowToChangeInstallationDirectory": true,
          "installerIcon": "icons/dms.ico",
          "uninstallerIcon": "icons/dms.ico",
          "installerHeaderIcon": "icons/dms.ico",
          "createDesktopShortcut": true,
          "createStartMenuShortcut": true,
          "shortcutName": "dms"
        }
      },
    

    windows 的配置项会稍微复杂一点,主要是要多加一个 nsis 配置,这个配置的主要目的是允许用户自定义安装路径,是否允许添加快捷方式,定义安装图标和卸载图标等。

    • 优缺点

    1)功能强大,上手较复杂,配置参数繁多 2)即支持生成可执行程序,也可以生成 dmg、exe 等安装程序 3)内置热升级模块,调用方便 4)打包时最好使用 cnpm run build,否则镜像下载太慢,会卡住。 5)支持跨平台打包(mac 打 windows 的包有的依赖包可能下载很慢,需要手动安装)

    热更新

    签名

    签名是什么? 对 app 进行代码签名可让用户确信 app 来自已知来源并且自最后一次签名以来未被修改。您必须先使用 Apple 颁发的证书对 app 进行签名,然后您的 app 才能够整合 app 服务、安装到设备上或提交到 App Store。

    如果你的 app 要支持 macOS,那签名是热更新当中的必不可少的一步,否则无法正确打包。此外,要生成 Apple 颁发的证书必须要苹果开发者账号吗?答案是否定的,用我们平时下载软件的 appleID 一样可以生成签名,完成热更新。不用苹果开发者生成的证书缺点就是不能上传到 App Store,且 app 在安装的时候会出现“打不开 XXX,因为它来自身份不明的开发者。”若要打开,必须要前往安全设置里面允许该软件的打开。显然,这样的体验对用户是不友好的,所以,如果你是企业开发者,最好还是前往苹果开发者中心申请开发者账号。

    假设你已经申请好了苹果开发者账号。接下来,是如何生成p12证书和设置环境变量的问题了。

    1)打开 xcode,xcode -> preference -> Accounts -> add new acount ,选择 AppleID,然后登录你申请好的苹果者账号(系统会生成默认开发证书) 2)登录完成以后,选择 Manage Certificates... -> 右下角+按钮 -> Developer ID Application -> done,此步骤是将该认证导入到你的钥匙串中。 3) command+空格 打开钥匙串访问 4)选择登录我的证书 – 选择你刚才导入的苹果开发者证书 5)右键证书->导出(.p12格式),存放位置当前用户目录(你也可以存放到其他目录) 6)设置环境变量

    sudo vim ~/.bash_profile
    // 添加
    export CSC_LINK=~/cert.p12 // 你存放p12签名文件的位置
    export CSC_KEY_PASSWORD="12345" // p12密码
    // 保存退出后刷新env
    source ~/.bash_profile
    
    1. 重新执行打包命令

    此时再打包就会显示签名已经成功通过了。如图所示:

    Electron应用篇(打包和热更新)

    您也可以前往 help.apple.com/xcode/mac/c… 查看签名文档。

    搭建github服务器

    "build": {
        "productName": "DMS",
        "appId": "com.electron.dms.1.0.0",
        "asar": false,
        "publish": [
           {
             "provider": "github",
             "owner": "hywww",
             "repo": "package-dms-desktop"
           }
        ],
    }
    

    搭建私有服务器

    私有服务器的搭建很简单,只需在 package.json 的 build 属性里面配置即可。 provider 指定为 “generic”,url 配置为你存放打包文件的静态服务器

    "build": {
        "productName": "DMS",
        "appId": "com.electron.dms.1.0.0",
        "asar": false,
        "publish": [
          {
            "provider": "generic",
            "url": "https://public-buk.oss-cn-hangzhou.aliyuncs.com/dms/dms-desktop/"
          }
        ],
    }
    

    编写热更新代码

    1. 安装热更新插件
    npm i electron-updater --save
    
    1. 方法调用
    const autoUpdater = require('electron-updater').autoUpdater;
    
    autoUpdater.checkForUpdatesAndNotify({ body: '新版本已经下载完成,重启应用将会自动更新', title: '发现更新' })
    

    除了直接调用现成的方法 checkForUpdatesAndNotify,你也可以根据自己的业务情况编写手动更新方法,详见 github.com/electron-us…


    起源地下载网 » Electron应用篇(打包和热更新)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元