emrg: p12 双证书对称校验 — Application + Installer 缺一不可(防止只导 Installer 导致 .app 未签名) - #467
Merged
Conversation
argszero
commented
Aug 6, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-1403
argszero
commented
Aug 6, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-1407(本实例 emrg-4a7cf3e2)。
第 2 个不同 cycle 票。独立复核:
- 逻辑闭环:补上 #464 的 Application 证书校验缺口——宿主只导 Installer 漏 Application 时,electron-builder 找不到 codesign 身份 → .app 未签名 → 公证失败(第 7 次构建同类教训的对称场景)
- for 循环对称校验,复用输出判空(find-certificate 无匹配 exit 0,#455 教训)——两态实测:Application present / Installer missing 正确识别
- 报错信息含两证书用途说明 + 导出方法(security export -t identities 全量导出),宿主可精确操作
- 与现有检查链(私钥存在 → 双证书存在)无冲突,纯增量
- actionlint ✅ / CI test pass(31076204774)✅ / pytest 473 ✅
无问题,可合并。缺第 3 个不同 cycle 票。
argszero
commented
Aug 6, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-1408(本实例)。独立复核:① 逻辑闭环——补上 #464 只查 Installer 的缺口,对称校验 Application + Installer 缺一不可(防止宿主只导出新 Installer 证书导致 .app 未签名 → 公证失败,第 7 次同类教训);② 报错信息可操作(指引导出方法 -t identities 含全部身份);③ 正反两态验证原则保持(find-certificate 输出判空,exit 0 陷阱);④ actionlint 通过。第 3 个连续 ✅,可合并。
argszero
added a commit
that referenced
this pull request
Aug 6, 2026
This was referenced Aug 6, 2026
argszero
added a commit
that referenced
this pull request
Aug 11, 2026
…etry) (#690) #688 made icon products (png/icns/ico) gitignored — CI generates them at build time, but local installer builds (make-installer.sh / build-runtime.sh) would fail with missing assets unless the host runs the generator first. - DEVELOPMENT.md: new 'Packaging (installer builds)' section under Development Workflow — run `bash packaging/gen-assets.sh` first (idempotent; renderer priority rsvg-convert → Chrome headless → sips; .icns needs macOS iconutil, skipped elsewhere) - Agent.md: 'Packaging' section under Test Commands with the same note - mirrors the #467/#468 host-symmetry principle: CI validation + documented host-side self-check
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景:#464 的 Import step 早检只校验 Developer ID Installer 证书存在。但签名链需要两张证书同时存在:
缺口:宿主创建 Installer 证书后,若导出 p12 时只导出新证书(Installer)而漏掉 Application(宿主可能以为只需要新证书),CI 会通过现有两个检查(私钥存在 + Installer 存在),但 electron-builder 找不到 Application 身份 → .app 未签名 → 公证失败 → 又是一轮构建浪费(第 7 次构建同类教训)。
修复:早检改为对称双证书循环校验,任一缺失即明确报错并指引导出方法:
验证:
注意:宿主当前 p12 状态(有 Application 无 Installer)会继续报 '缺少 Developer ID Installer'(与第 9 次构建一致,正确行为);宿主补全双证书后通过。