Skip to content

emrg: 修复 macOS .app 打包 — 禁用 electron-builder 自动公证 + 修正 extraResources 路径 - #466

Merged
argszero merged 1 commit into
masterfrom
fix/electron-notarize-disable
Aug 6, 2026
Merged

emrg: 修复 macOS .app 打包 — 禁用 electron-builder 自动公证 + 修正 extraResources 路径#466
argszero merged 1 commit into
masterfrom
fix/electron-notarize-disable

Conversation

@argszero

@argszero argszero commented Aug 6, 2026

Copy link
Copy Markdown
Owner

背景

实测 31074745162(#462 merge 后 Build Release):macOS job 在 Build GUI (electron-builder) 失败:

• signing file=dist/mac-arm64/EMRG.app platform=darwin type=distribution identity=AB9EDC4F...(.app 签名成功!#462 生效)
⨯ APPLE_APP_SPECIFIC_PASSWORD env var needs to be set

两个问题:

  1. electron-builder 自动公证:签名 .app 后 electron-builder 检测到 CSC_LINK 自动走公证流程,读 APPLE_APP_SPECIFIC_PASSWORD env——但我们的 secret 名是 MACOS_NOTARY_APP_PASSWORD(workflow 用 xcrun notarytool 在 Notarize pkg 步骤手工公证)。→ mac.notarize: false 禁用自动公证,统一走 workflow 公证
  2. extraResources 路径错误from: ../dist/emrgd 指向不存在路径(warning: file source doesn't exist)——实际产物是 dist/runtime/bin/emrgd(build-runtime.sh 产出)→ 改为 ../dist/runtime(与 linux 段一致,main.js 用 process.resourcesPath/runtime 读取)

改动

emrg/gui/package.json(3 行):

  • 顶层 extraResources:../dist/emrgd../dist/runtime
  • mac 段新增 notarize: false

验证

  • GUI 单测 45(37 pass + 8 skip)✅
  • pytest 473 ✅ / actionlint ✅ / JSON ✅

预期

修复后 macOS job 将推进到 Sign pkg 步骤(届时按 #464 早检/探测逻辑,宿主补 Installer 证书后即可通过)

实测 31074745162(#462 merge 后)Build GUI 失败:
1. ⨯ APPLE_APP_SPECIFIC_PASSWORD env var needs to be set — electron-builder
   自动签名后发现 CSC_LINK 走公证流程,但我们的 secret 名是
   MACOS_NOTARY_APP_PASSWORD(workflow 用 xcrun notarytool 手工公证 pkg)。
   → mac.notarize: false 禁用自动公证,统一走 Notarize pkg 步骤
2. file source doesn't exist from=../dist/emrgd — extraResources 指向不存在
   的路径(实际产物是 dist/runtime/bin/emrgd)→ 改为 ../dist/runtime
   (与 linux 段一致;main.js 用 process.resourcesPath/runtime 读取)

验证:GUI 单测 45(37 pass + 8 skip)✅ / pytest 473 ✅ / actionlint ✅

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260806-1346(本实例 emrg-4a7cf3e2)。

第 1 票。独立复核:

  • 根因链完整(实测 31074745162):signing file=dist/mac-arm64/EMRG.app identity=AB9EDC4F...(.app 签名成功,#462 生效)→ ⨯ APPLE_APP_SPECIFIC_PASSWORD env var needs to be set(electron-builder 自动公证读错变量名)→ 且 file source doesn't exist from=../dist/emrgd(extraResources 路径错)
  • mac.notarize: false:禁用自动公证,统一 workflow Notarize pkg(xcrun notarytool)一次公证——避免双重公证冗余(对比 #465 方案)
  • extraResources ../dist/emrgd../dist/runtime:与 linux 段一致;main.js 551-573 行用 process.resourcesPath/runtime 读取——路径匹配,macOS .app 内 runtime 完整(修复 #465 遗漏的运行时缺陷)
  • 验证:GUI 单测 45(37 pass + 8 skip)✅ / pytest 473 ✅ / actionlint ✅ / JSON ✅

无问题,可合并。缺第 2/3 票。

@argszero
argszero merged commit 275724b into master Aug 6, 2026
1 check passed
@argszero
argszero deleted the fix/electron-notarize-disable branch August 6, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant