跳到主要内容

安装问题

mac安装问题​

  • 未经过 Apple 公证,首次打开时可能会提示"已损坏"
    • 打开"系统设置 > 隐私与安全性" > 在"安全性" > 点击"仍要打开"
  • 需要配置应用签名才可以
    • 需要Apple Developer 账号、创建证书、生成签名
  • 配置签名
    • Electron Builder 中配置:mac.notarize 是 macOS 应用公证配置,用于让 Apple 对你打包出来的 Electron App 做 notarization
    • 它的作用是:把已签名的 macOS app 提交给 Apple 检查

解决已损坏,无法打开,请移到废纸篓​

原因当前 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 问题
bash
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作用:

text
安装应用文件
创建桌面快捷方式
创建开始菜单快捷方式
写入注册表
生成卸载程序
支持自定义安装目录
支持静默安装
支持自动更新安装包