You need to enable JavaScript to run this app. macOS平台Electron应用.pkg构建目标自动更新功能失效问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

macOS平台Electron应用.pkg构建目标自动更新功能失效问题咨询

排查解决步骤

  • 第一步:升级electron-builder到最新稳定版
    electron-builder从22.10.0版本才开始支持pkg作为发布目标时生成更新配置文件,低于该版本会默认跳过yml生成。执行以下命令检查版本:
    yarn list electron-builder
    版本不符合的话直接升级:
    yarn add electron-builder@latest --dev

  • 第二步:补充构建目标配置
    Electron自动更新依赖zip格式的构建包作为更新下载源,仅构建pkg无法完成自动更新流程,需要在target中同时添加zip;其次显式开启全渠道更新文件生成,修改后的mac配置参考:

    "mac": {
          "entitlements": "build/entitlements.mac.inherit.plist",
          "entitlementsInherit": "build/entitlements.mac.inherit.plist",
          "icon": "./resources/icon.png",
          "generateUpdatesFilesForAllChannels": true,
          "target": [
            "pkg",
            "zip"
          ]
        },
    
  • 第三步:补全S3发布配置
    检查publish配置是否补全必填参数,示例完整配置如下:

    "publish": {
      "provider": "s3",
      "bucket": "build",
      "region": "你的S3桶所在区域,比如us-east-1",
      "acl": "public-read" // 桶为私有可去掉,对应调整autoUpdater的访问鉴权即可
    }
    
  • 第四步:本地验证打包输出
    先确认package.json中的version字段为合法的语义化版本(如1.2.3),无特殊字符。再本地执行打包命令,跳过CI环境干扰:
    yarn package-ci
    检查打包生成的dist目录下是否存在latest-mac.yml、app-update.yml文件,以及是否同时生成了pkg和zip格式的安装包。如果本地生成正常,清理CI环境的node_modules、dist缓存后重新执行构建即可。

  • 第五步:校验自动更新主进程逻辑
    确认主进程中autoUpdater的feed地址正确指向S3桶的latest-mac.yml地址,且pkg包已经完成苹果公证和签名,否则macOS会阻止应用更新或运行。


内容的提问来源于stack exchange,提问作者Vivek Thumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 04:12:05