Files
lgp-admin-plus/apps/desktop/electron-builder.yml

77 lines
2.9 KiB
YAML
Raw Permalink Normal View History

2026-08-13 19:04:28 +08:00
# electron-builder 打包配置(Windows + macOS 双平台)
#
# 签名/公证完全由环境变量驱动,本文件不写死任何证书:
# - 配置了 CSC_LINK + CSC_KEY_PASSWORD(或 mac 钥匙串里有 Developer ID 证书)→ 自动签名;
# 没配置则 electron-builder 自动跳过签名,只告警不报错(出未签名包)
# - APPLE_ID + APPLE_APP_SPECIFIC_PASSWORD + APPLE_TEAM_ID 三者齐全 → 自动公证;缺任一则跳过
# - 未签名 mac 包首次打开需右键「打开」,自动更新由 updater.ts 降级为手动下载引导
#
# 注意:mac 包必须在 macOS 机器上构建(不支持从 Windows 交叉编译),命令同一条 pnpm build:desktop
# 必须与 src/main/config.ts 的 APP_ID 一致(Windows 通知 AUMID 对齐)
appId: com.nladmin.desktop
productName: Nl Admin
directories:
output: release
buildResources: resources
# 只打 electron-vite 产物:运行时依赖已全部打进 out/,asar 里无需 node_modules
files:
- out/**
extraResources:
# web-antd 生产 dist → resources/web(app:// 协议的静态根;不进 asar,为后续渲染层热替换留路)
- from: ../web-antd/dist
to: web
# 应用图标供运行时使用(托盘 / 通知 / 窗口图标)
- from: resources/icon.png
to: icon.png
asar: true
# dependencies 为空(依赖全部打进 out/),跳过原生依赖重建
npmRebuild: false
# 产物名不带空格,避免更新托管 URL 转义问题
artifactName: nl-admin-desktop-${version}-${os}-${arch}.${ext}
win:
# 提供 ≥512px 的 png,electron-builder 自动转 .ico
icon: resources/icon.png
target:
- target: nsis
arch:
- x64
nsis:
# 非一键安装:允许用户选择安装目录
oneClick: false
allowToChangeInstallationDirectory: true
# 开始菜单快捷方式是 Windows 通知(AUMID)生效的前提,必须保留
createDesktopShortcut: always
createStartMenuShortcut: true
shortcutName: Nl Admin
mac:
# 同一张 png 自动转 .icns
icon: resources/icon.png
category: public.app-category.business
# 公证的前置要求;配合基础 entitlements(无摄像头/麦克风,本项目无音视频)
hardenedRuntime: true
gatekeeperAssess: false
entitlements: resources/entitlements.mac.plist
entitlementsInherit: resources/entitlements.mac.plist
target:
# zip 是 mac 自动更新(latest-mac.yml)的必需格式,dmg 用于人工分发安装
- target: dmg
arch:
- x64
- arm64
- target: zip
arch:
- x64
- arm64
dmg:
# dmg 容器本身不签名(zip 内的 .app 已按环境变量策略签名),减少无证书时的干扰告警
sign: false
publish:
# generic 静态托管:目录里放 latest.yml / latest-mac.yml / 安装包 / blockmap 即可
# TODO(待确认):与 src/main/config.ts 的 UPDATE_URL 保持一致
provider: generic
url: https://updates.example.com/nl-desktop/