Electron 11.5.0应用公证失败:altool已停用需改用notarytool
解决Apple公证altool停用导致的Electron构建报错问题
核心原因
Apple在2024年4月正式停用了用于应用公证的altool工具,要求改用notarytool,而你当前使用的electron-builder 22.x和electron-notarize 1.0.0版本仅支持altool,因此触发报错。
修复步骤
1. 更新依赖包
需要升级到支持notarytool的版本:
electron-builder至少升级到23.6.0(该版本开始原生支持notarytool)electron-notarize至少升级到2.0.0(适配notarytool的版本)
执行命令更新:
npm install electron-builder@^23.6.0 electron-notarize@^2.0.0 --save-dev
2. 调整公证配置
旧版的electron-notarize配置基于altool,需要修改为notarytool兼容格式:
原旧版配置示例:
require('electron-notarize').notarize({ appBundleId: "com.your.app.id", appPath: "./dist/mac/YourApp.app", appleId: "your-apple-id@example.com", appleIdPassword: "your-app-specific-password" })
修改为适配notarytool的配置:
require('electron-notarize').notarize({ appBundleId: "com.your.app.id", appPath: "./dist/mac/YourApp.app", tool: "notarytool", appleId: "your-apple-id@example.com", appleIdPassword: "your-app-specific-password", teamId: "your-apple-team-id" // notarytool强制要求填写团队ID })
3. 验证本地环境
确保你的Mac满足以下条件:
- macOS版本至少为12.0(notarytool依赖该系统版本)
- Xcode命令行工具已更新至最新,执行以下命令检查/安装:
xcode-select --install xcodebuild -version
4. 重新构建
执行构建命令(无需sudo,避免权限冲突):
npm run dist
额外注意事项
- 若
electron 11.5.0版本过旧,可能与新版electron-builder存在兼容性问题,建议同步升级Electron到14.x及以上的LTS版本 - 苹果应用专用密码(appleIdPassword)需在Apple ID管理页面生成,不能直接使用Apple ID的登录密码
内容的提问来源于stack exchange,提问作者Narasimhamoorthy L R
相关产品推荐
相关产品推荐

