You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Electron应用DMG包中排除squirrel.mac框架并禁用自动更新

解决Electron应用向App Store发布时的squirrel.mac相关问题

彻底禁用AutoUpdate

  • 移除主进程中所有与autoUpdater相关的代码:不要引入electron的autoUpdater模块,删除任何检查更新、监听更新事件的逻辑,确保应用完全不触发自动更新流程。
  • 配置打包工具禁用自动更新:
    • 若使用electron-builder,在package.json的build字段中设置"publish": { "provider": "none" },明确告知打包工具不需要处理发布和自动更新相关内容。
    • 若使用electron-packager,打包时无需添加任何与自动更新相关的参数,确保不启用squirrel相关的打包逻辑。

正确排除squirrel.mac框架

不要手动删除应用包内的squirrel文件夹,这会破坏应用的启动依赖链,导致无法打开。正确的做法是通过打包工具配置排除:

  • electron-builder配置:在package.json的build字段中添加文件排除规则:
    "build": {
      "mac": {
        "files": [
          "!**/Squirrel.framework",
          "!**/squirrel*"
        ]
      },
      "publish": { "provider": "none" }
    }
    
  • electron-packager配置:打包时添加忽略参数,或者在配置文件中设置ignore字段:
    electron-packager . YourApp --platform=darwin --arch=x64 --ignore=Squirrel.framework --ignore=squirrel*
    

为什么手动删除会导致应用无法打开

Electron打包时,若未正确禁用自动更新,应用的启动二进制文件会默认依赖squirrel的相关库进行初始化。手动删除squirrel框架后,启动器无法找到依赖的组件,直接触发崩溃,导致应用无法打开。

验证步骤

  1. 按上述配置重新打包应用
  2. 右键应用包选择「显示包内容」,检查Contents/Frameworks目录下是否存在Squirrel.framework
  3. 启动应用确认能正常运行
  4. 提交到App Store即可避免squirrel.mac相关错误

内容的提问来源于stack exchange,提问作者Jigar Jadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:20:05