Commit f3ee848
committed
fix(xpc): make MenuBarItemService talk to ad-hoc-signed parent apps
Upstream PR jordanbaird#903 introduced MenuBarItemService.xpc with this line:
listener = try XPCListener(service: name,
requirement: .isFromSameTeam()) { ... }
`.isFromSameTeam()` requires the listener and every peer to be signed
with the same Apple Team Identifier. That works for builds Jordan
produces from his Developer ID Application certificate. It does NOT
work for any ad-hoc-signed build (TeamIdentifier = empty), because
empty-vs-empty is never treated as a match — the listener rejects
every check-in attempt with "Bogus check-in attempt. Ignoring." and
"Dropping check-in message due to code signing requirement".
The visible symptom is the Menu Bar Layout settings pane spinning
forever on "Loading menu bar items…" — XPC never returns, so Ice
never gets the cached item snapshots. This is the same class of bug
reported in upstream issues jordanbaird#744 (46 reactions) and jordanbaird#891 (30 react-
ions), and it bites every community fork that ships without an Apple
Developer Program account — which is roughly every community fork.
This commit reads the running process's actual Team Identifier via
SecCodeCopySigningInformation; if it's nil (ad-hoc / unsigned), we
fall through to the no-requirement activation path. If it's set
(properly Developer-ID-signed build), behaviour is unchanged — the
strict same-team requirement still applies.
For our fire fork:
- 0.11.13-fire.0..fire.1 (ad-hoc, this branch's defaults) → fixed.
- 0.11.13-fire.2+ once signed with our Developer ID → unchanged,
still uses .isFromSameTeam() because we'll have a team ID.
Also bumps MARKETING_VERSION 0.11.13-fire.1 → 0.11.13-fire.2 and
CURRENT_PROJECT_VERSION 1123 → 1124 so Sparkle in installed fire.1
recognizes this as a newer build and offers the update.1 parent ef94a96 commit f3ee848
2 files changed
Lines changed: 44 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
420 | | - | |
| 420 | + | |
421 | 421 | | |
422 | 422 | | |
423 | 423 | | |
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
436 | | - | |
| 436 | + | |
437 | 437 | | |
438 | 438 | | |
439 | 439 | | |
| |||
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
453 | | - | |
| 453 | + | |
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
| |||
466 | 466 | | |
467 | 467 | | |
468 | 468 | | |
469 | | - | |
| 469 | + | |
470 | 470 | | |
471 | 471 | | |
472 | 472 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
27 | 60 | | |
28 | 61 | | |
29 | 62 | | |
| |||
73 | 106 | | |
74 | 107 | | |
75 | 108 | | |
76 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
77 | 116 | | |
78 | 117 | | |
79 | 118 | | |
| |||
0 commit comments