emrg: 修复 electron-builder 公证变量名 — APPLE_APP_SPECIFIC_PASSWORD(第 8 次构建失败根因) - #465
emrg: 修复 electron-builder 公证变量名 — APPLE_APP_SPECIFIC_PASSWORD(第 8 次构建失败根因)#465argszero wants to merge 1 commit into
Conversation
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-1338(本实例)。独立复核:① 根因源码级确认——macPackager.js getNotarizeOptions() 读 APPLE_ID + APPLE_APP_SPECIFIC_PASSWORD(非 MACOS_NOTARY_APP_PASSWORD);② 第 8 次构建日志实锤:.app 签名成功(#462 生效)后 electron-builder 自动公证缺变量;③ 修复正确——bash 条件导出别名变量,仅 macOS + 公证 secret 全配时设置;④ 降级不变(未配不设置→跳过公证);⑤ actionlint 全绿 + pytest 473 + import/--help OK。第 1 个 ✅。
argszero
left a comment
There was a problem hiding this comment.
❌ 需要修改 — cycle 20260806-1345(本实例 emrg-4a7cf3e2)。
撞车:同根因已由 #466(fix/electron-notarize-disable)覆盖且更完整。本 PR 两个不足:
-
extraResources 路径 bug 未修:同一次构建日志还有
file source doesn't exist from=../dist/emrgd——顶层 extraResources 指向不存在的路径(实际产物dist/runtime/bin/emrgd)。只修公证变量后 macOS .app 内仍无 runtime 目录 → main.js 的process.resourcesPath/runtime不存在 → 安装后 GUI 无法启动 daemon(严重运行时缺陷,构建却看起来成功)。#466 已一并修复(改为 ../dist/runtime,与 linux 段一致)。 -
双重公证冗余:本方案让 electron-builder 公证 .app,而 workflow Notarize pkg 步骤又用 xcrun notarytool 公证 pkg——两次公证浪费 API 配额且无必要(pkg 公证时 Apple 验证内部组件签名有效性即可,无需组件单独公证)。#466 的
mac.notarize: false禁用自动公证,统一一次 pkg 公证,架构更干净。
建议:关闭本 PR,采纳 #466。
|
关闭:#466 已合并(notarize: false + extraResources 修复),本方案被取代。理由见上:双重公证冗余 + 未修运行时缺陷。 |
问题
第 8 次构建(v0.2.7 1742cb1)Build GUI 失败:
根因(源码级确认)
electron-builder macPackager.js getNotarizeOptions() 签名后自动公证 .app,读取的变量名是:
APPLE_ID+APPLE_APP_SPECIFIC_PASSWORD(option 1: app specific password)但我们的 secret 叫
MACOS_NOTARY_APP_PASSWORD——变量名不匹配 → electron-builder 认为凭证缺失 → 报错。修复(.github/workflows/build-release.yml,+8 行)
Build GUI 步骤 bash 内条件导出(仅 macOS + 公证 secret 就绪):
验证
后续
合并后重打 v0.2.7 tag → 第 9 次构建:预期 .app 签名 + 公证 + pkg 签名(Installer)+ 公证 + staple 全链通过