最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    正文概述 掘金(叶梅树)   2021-06-15   493

    这是我参与更文挑战的第14天,活动详情查看: 更文挑战

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    半个月的努力,终于到了发布一版本的时候了,基于功能逻辑虽然有待不断完善,但根据 MVP 最小量化开发逻辑,给自己定了每两周发一版本的要求。

    所以今天的目标就是学习如何打包 Mac 版本。

    学习如何在 Github Action 上如何自动化打包 Mac 版本之前,我们需要学习下有关 Github Action 知识。

    Github Actiion

    在使用这个框架模板的前几天,我一直发现,只要我提交代码到 Gtihub 上,总会看到一个红色(❎️)的提示 (当然现在基本都是✅️的提示了):

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    点击这个提示,发现是跳转到「Actions」界面,如下面报错的截图:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    后来通过了解,原来所有的 Actions 对应的 workflows 是写在了 .github 目录下,具体可看 Github 官网介绍:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    下面拿 lint.yml 做简单介绍。

    lint.yml

    顾名思义,这个主要是配合代码格式化检测的,其实在代码 commit 到缓存时,也会执行 yarn lint 操作。

    // package.json
    "simple-git-hooks": {
      "pre-commit": "npx lint-staged",
      "pre-push": "npm run typecheck"
    },
    "lint-staged": {
      "*.{js,ts,vue}": "eslint --cache --fix"
    },
    

    即这个等效于:

    // package.json
    "scripts": {
      ...
      
      "lint": "eslint . --ext js,ts,vue",
      
      ...
    }
    

    所以在 commit 代码之前,我都会自己执行 yarn lint 让代码没报错。

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    回过头来,我们看看这个 workflow 代码:

    name: Linters
    on:
      push:
        branches:
          - main
        paths:
          - '**.js'
          - '**.ts'
          - '**.vue'
          - 'yarn.lock'
          - '.github/workflows/lint.yml'
      pull_request:
        paths:
          - '**.js'
          - '**.ts'
          - '**.vue'
          - 'yarn.lock'
          - '.github/workflows/lint.yml'
    
    
    defaults:
      run:
        shell: 'bash'
    
    jobs:
      eslint:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v2
            with:
              node-version: 15 # Need for npm >=7.7
    
          - uses: actions/cache@v2
            with:
              path: ~/.npm
              key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
              restore-keys: |
                ${{ runner.os }}-node-
    
          # TODO: Install not all dependencies, but only those required for this workflow
          - name: Install dependencies
            run: npm install -g yarn && yarn install --immutable
    
          - run: yarn lint
    

    只看最后几行代码基本就知道了,使用了 yarn.lock快速安装所有依赖,然后在全局中安装好 yarn,之后执行 yarn lint,效果一样。

    打包

    看了 lint.yml 的原理,基本也就明白了打包的 release.yml 原理了。

    直接看代码:

    // release.yml
    // 其他的舍弃
    # Compile app and upload artifacts
      - name: Compile & release Electron app
        uses: samuelmeuli/action-electron-builder@v1
        with:
          build_script_name: build
          args: --config electron-builder.config.js
    
          # GitHub token, automatically provided to the action
          # (No need to define this secret in the repo settings)
          github_token: ${{ secrets.github_token }}
          mac_certs: ${{ secrets.mac_certs }}
          mac_certs_password: ${{ secrets.mac_certs_password }}
    
          # If the commit is tagged with a version (e.g. "v1.0.0"),
          # release the app after building
          release: true
    
          # Sometimes the build may fail due to a connection problem with Apple, GitHub, etc. servers.
          # This option will restart the build as many attempts as possible
          max_attempts: 3
    

    这里需要说明的一个就是怎么获取 Mac Code Signing

    In your project's GitHub repository, go to Settings → Secrets and add the following

    - name: Build/release Electron app
      uses: samuelmeuli/action-electron-builder@v1
      with:
        # ...
        mac_certs: ${{ secrets.mac_certs }}
        mac_certs_password: ${{ secrets.mac_certs_password }}
    

    具体在 Mac developer 中心怎么创建一个开发者证书这里就不说了,之后在我们 Mac 本机器上导师证书 p12 格式文件,然后加密输出为字符串:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    最后,再将内容填入 Settings/Secrets 中,以供 release action 使用:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    好了,我们提交代码,看 workflow 运行起来:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    至此,在 Draft 里可以看到打包的执行包:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    下载并按照看看能不能跑起来。

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    小结

    今天我们粗略了解下如何执行 Github Actions,如何编写 Workflows 和 Mac 证书生成并最后打包成 dmg 格式,以供下载安装使用。

    此外,在打包出来执行后,发现有关网络请求和缓存报错了:

    Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    这有待于我继续优化了,未完待续!


    起源地下载网 » Electron+Vue3 MAC 版日历开发记录(14)——Mac打包

    常见问题FAQ

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

    发表评论

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

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

    联系作者

    请选择支付方式

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