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
相关产品推荐
相关产品推荐

