安装问题
mac安装问题
- 未经过 Apple 公证,首次打开时可能会提示"已损坏"
- 打开"系统设置 > 隐私与安全性" > 在"安全性" > 点击"仍要打开"
- 需要配置应用签名才可以
- 需要Apple Developer 账号、创建证书、生成签名
- 配置签名
- Electron Builder 中配置:
mac.notarize是 macOS 应用公证配置,用于让 Apple 对你打包出来的 Electron App 做 notarization - 它的作用是:把已签名的 macOS app 提交给 Apple 检查
- Electron Builder 中配置:
解决已损坏,无法打开,请移到废纸篓
原因当前 mac 包:
- 没有 Apple 公证 (notarization公证)
- 没有正式 Developer ID 签名
- 下载后会被 macOS 加上 quarantine 隔离属性
- Gatekeeper 就可能提示“应用已损坏,无法打开,请移到废纸篓”
- Gatekeeper 是 macOS 的安全机制,用来防止用户运行不可信、被篡改或未验证的应用
使用xattr方式解决
通过删除 App 上的
com.apple.quarantine隔离属性,可以让 macOS 不再把它当作“从互联网下载、需要 Gatekeeper 严格检查的应用”,从而绕过“应用已损坏 / 无法验证开发者”的打开拦截
xattr 是 macOS 管理文件扩展属性的命令,xattr可以删除扩展属性,来解除应用下载隔离的状态,来绕过安装的问题,绕过Gatekeeper(mac的安全机制)对未签名的拦截
- 社区中很多知名开源项目都用 xattr 来解决 macOS Gatekeeper 问题
xattr -dr com.apple.quarantine "/Applications/Keep Notes.app"
or
xattr -cr /Applications/Keep\ Notes.app
| 命令 | 删除范围 | 推荐程度 |
|---|---|---|
xattr -dr com.apple.quarantine App.app | 只删除隔离属性 | 更推荐 |
xattr -cr App.app | 删除所有扩展属性 | 更粗暴,谨慎用 |
mac集成Homebrew
官方 homebrew/cask 更适合有一定知名度、稳定版本、可公开下载、维护质量较好的应用。官方文档提到,不满足最低知名度/接受条件的 Cask 可能不会被主仓库接受
win指定安装目录
electron-builder 里配置 NSIS 选项,可以配置安装向导
- 需要在
package.json里配置 NSIS - NSIS 全称是 Nullsoft Scriptable Install System,它是 Windows 上的安装包制作工具
- Nullsoft是公司名(是该公司开发的工具),Scriptable是可脚本化
NSIS作用:
安装应用文件
创建桌面快捷方式
创建开始菜单快捷方式
写入注册表
生成卸载程序
支持自定义安装目录
支持静默安装
支持自动更新安装包