首页
/ Electron-Builder升级后Notarization报错解决方案

Electron-Builder升级后Notarization报错解决方案

2025-05-16 22:07:16作者:沈韬淼Beryl

问题背景

在使用Electron-Builder构建macOS应用时,开发者从23.6.0版本升级到24.13.3后遇到了一个JSON解析错误。错误信息显示为"Unexpected token 'E', 'Error: abo'... is not valid JSON",这表明在应用公证(Notarization)过程中出现了问题。

错误分析

该错误发生在@electron/notarize模块的notarytool.ts文件中,具体是在尝试解析JSON数据时失败。从堆栈跟踪可以看出,问题出现在Mac应用打包后的公证阶段。

根本原因

经过开发者社区的分析,这个问题主要有两个可能的原因:

  1. Apple开发者协议更新:Apple可能更新了开发者协议条款,需要开发者登录Apple开发者账户并接受新的协议条款。

  2. 模块版本兼容性问题:@electron/notarize模块的某些版本可能存在与新版Electron-Builder的兼容性问题。

解决方案

方法一:接受Apple开发者新协议

  1. 登录Apple开发者账户
  2. 检查是否有待接受的协议更新
  3. 阅读并接受所有新条款
  4. 重新尝试构建过程

方法二:锁定notarize模块版本

在项目的package.json中添加resolutions字段,明确指定@electron/notarize的版本:

"resolutions": {
  "@electron/notarize": "2.3.2"
}

这个方法利用了yarn的resolutions特性来强制使用特定版本的依赖。

预防措施

  1. 在升级Electron-Builder前,检查相关依赖的兼容性
  2. 定期检查Apple开发者账户的协议更新
  3. 考虑在CI/CD流程中加入公证步骤的预处理检查

总结

Electron应用公证过程可能会因为多种因素失败,特别是在工具链升级后。开发者应该首先检查Apple开发者账户状态,其次考虑依赖版本锁定。保持开发环境的稳定性和及时关注官方更新公告是避免这类问题的有效方法。

登录后查看全文
热门项目推荐
相关项目推荐