macos 下 electron 打包证书如何生成?
如题
在 macOS 下,Electron 应用的打包通常需要一个 Apple Developer 证书(用于代码签名)和一个 Apple Developer ID(用于发布到 Mac App Store 或 Notarization)。以下是生成和使用证书的步骤:
1. 注册 Apple Developer 账号
如果尚未注册,前往 Apple Developer 注册,并申请 Apple Developer Program(每年 $99)。
2. 生成证书
你需要申请 Apple 的代码签名证书:
1. 打开“钥匙串访问” (Keychain Access
)
2. 在顶部菜单栏选择 钥匙串访问
-> 证书助理
-> 请求证书
3. 在弹出的窗口中:
- 用户电子邮件地址:填写你的 Apple ID 邮箱
- 选择 存储到磁盘
4. 生成 .certSigningRequest
(CSR) 文件
3. 在 Apple Developer 网站申请证书
- 访问 Apple Developer Certificates 页面
- 创建以下证书:
- 开发测试用:Mac Development
- 正式发布用:Mac App Distribution
- 上传之前生成的
.certSigningRequest
文件 - 下载生成的
.cer
文件并双击导入钥匙串访问
4. 申请 Apple Notarization(公证)
如果你要发布 Electron 应用(不只是开发测试),你需要:
1. 在 Apple Developer Portal 创建 Apple Developer ID Application 证书
2. 申请 App-Specific Password:
- 登录 Apple ID
- 创建 App-Specific Password
3. 配置 electron-builder
(示例 package.json
):
{
"build": {
"mac": {
"identity": "Developer ID Application: Your Name (Team ID)"
}
}
}
- 运行
electron-builder
进行代码签名:
export APPLE_ID="your-apple-id@example.com"
export APPLE_ID_PASSWORD="your-app-specific-password"
electron-builder --mac
5. 完成公证
如果要发布 DMG/ZIP 格式,需要向 Apple 进行 Notarization:
xcrun altool --notarize-app -t osx -f YourApp.dmg --primary-bundle-id com.your.app -u "your-apple-id@example.com" -p "your-app-specific-password"
等待公证完成后,运行:
xcrun stapler staple YourApp.dmg
这样应用就能顺利安装,不会出现 macOS Gatekeeper 的阻止弹窗。
总结
- 开发测试:使用
Mac Development
证书进行签名 - 正式发布:使用
Mac App Distribution
证书 + Apple Notarization - 避免未签名警告:务必完成 notarization
这样你的 Electron 应用就可以安全发布到 macOS 了 🚀