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

Electron应用公证失败求助:无法生成notarize选项

解决Electron应用Mac公证跳过及运行异常问题

1. 检查Electron Builder的公证配置

确保在package.json或electron-builder.yml中正确配置Mac公证参数,新版本@electron/notarize需包含以下必填项:

package.json示例:

"build": {
  "mac": {
    "identity": "980BE6C48918FDF2EB07A02884B8FB38BC86B2CC",
    "notarize": {
      "appleId": "你的苹果开发者账号邮箱",
      "appleIdPassword": "@keychain:AC_PASSWORD", // 推荐用钥匙串存储专用密码
      "teamId": "你的开发者团队ID"
    }
  }
}

注意:

  • appleIdPassword需使用苹果账号的专用密码(而非登录密码),可在苹果ID管理页面生成;
  • 用钥匙串存储密码的命令:security add-generic-password -a "你的苹果账号" -s "AC_PASSWORD" -w "你的专用密码"

2. 验证签名身份与团队ID匹配

执行以下命令查看签名证书的团队ID,确保与公证配置中的teamId一致:

security find-certificate -c "980BE6C48918FDF2EB07A02884B8FB38BC86B2CC" -p | openssl x509 -noout -subject

输出中OU=后的内容即为团队ID,需和配置里的teamId完全相同。

3. 排查依赖兼容性与冲突

  • 执行npm ls @electron/notarize检查是否存在版本冲突;
  • 若有冲突,删除依赖重新安装:
rm -rf node_modules package-lock.json
npm install

4. 手动测试公证流程(定位具体错误)

编写测试脚本直接调用@electron/notarize,获取更详细的错误信息:

const { notarize } = require('@electron/notarize');

async function runNotarize() {
  try {
    await notarize({
      appBundleId: "com.yourcompany.Nanoheal", // 替换为你的应用Bundle ID
      appPath: "./dist/mac-arm64/Nanoheal.app",
      appleId: "你的苹果开发者账号邮箱",
      appleIdPassword: "@keychain:AC_PASSWORD",
      teamId: "你的开发者团队ID"
    });
    console.log("公证完成");
  } catch (err) {
    console.error("公证失败:", err);
    process.exit(1);
  }
}

runNotarize();

运行脚本:node notarize-test.js,根据输出的具体错误调整配置或修复问题。

5. 确保应用签名有效

执行以下命令检查签名状态,确认签名为有效的分发签名:

codesign -dv --verbose=4 dist/mac-arm64/Nanoheal.app

若签名存在错误(如身份不匹配、权限问题),需先修复签名问题再尝试公证。

6. 钉扎公证结果解决spctl验证失败

若公证成功后spctl仍报错,执行以下命令钉扎公证结果:

xcrun stapler staple dist/mac-arm64/Nanoheal.app

验证钉扎结果:

spctl --assess -vvv --type execute dist/mac-arm64/Nanoheal.app

正常输出应包含accepted字样。


内容的提问来源于stack exchange,提问作者Narasimhamoorthy L R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:03:18