mac: Sparkle sandbox mach-lookup entitlements — updates install again (#1101)
The sandboxed app never had the -spks/-spki temporary-exception mach-lookup entitlements Sparkle requires alongside SUEnableInstallerLauncherService, so every update since sandboxing landed (#474, 0.5.0) died at "An error occurred while running the updater" — Installer.xpc launched but the app couldn't connect to its status/installer mach services. Adds the two exceptions to the ship and dev entitlements, and replaces the unannounced 0.7.2 changelog entry with a 0.7.3 one that carries the one-time manual-download instruction (the fix only arms builds that contain it).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
4 files changed,
+29
−8
changelog/2026-07-18-mac-0-7-2.md+0 −8changelog/2026-07-18-mac-0-7-3.md+10 −0ios/LChatMac/LChatMac-Dev.entitlements+6 −0ios/LChatMac/LChatMac.entitlements+13 −0
diff --git a/changelog/2026-07-18-mac-0-7-2.md b/changelog/2026-07-18-mac-0-7-2.md| deleted file mode 100644 |
| index c5e47d0..0000000 |
| --- a/changelog/2026-07-18-mac-0-7-2.md |
| +++ /dev/null |
| @@ -1,8 +0,0 @@ |
| -🤖 A Mac app update (0.7.2, on auto-update). The message box finally got to |
| -the bottom of "clicking it does nothing": clicking an empty message box now |
| -always puts the cursor there, and the first click back into the window lands |
| -instead of just waking the app. The short freezes when switching back to |
| -Eleven are fixed too — the app was quietly redrawing every message and every |
| -sidebar row on each change, and now only redraws what actually changed. And |
| -when you've scrolled up in a long chat, a new button appears to jump you |
| -straight back to the latest messages. |
diff --git a/changelog/2026-07-18-mac-0-7-3.md b/changelog/2026-07-18-mac-0-7-3.md| new file mode 100644 |
| index 0000000..002a290 |
| --- /dev/null |
| +++ b/changelog/2026-07-18-mac-0-7-3.md |
| @@ -0,0 +1,10 @@ |
| +🤖 A Mac app update (0.7.3) — and this one fixes updating itself. The app's |
| +built-in updater has been failing quietly with an "Update Error!" since early |
| +July, so Mac updates weren't arriving. Because the fix has to be *in* the app |
| +you're running, this last one is a manual step: download a fresh copy from |
| +https://github.com/elevenmessenger/releases/releases/latest and drop it into |
| +Applications. From then on updates install themselves again. This build also |
| +carries everything from 0.7.2: clicking an empty message box always lands the |
| +cursor, the first click back into the window works, the short freezes when |
| +switching back to Eleven are gone, and a new button jumps you back to the |
| +latest messages when you've scrolled up. |
diff --git a/ios/LChatMac/LChatMac-Dev.entitlements b/ios/LChatMac/LChatMac-Dev.entitlements| index 677aa7d..d6bda9f 100644 |
| --- a/ios/LChatMac/LChatMac-Dev.entitlements |
| +++ b/ios/LChatMac/LChatMac-Dev.entitlements |
| @@ -27,5 +27,11 @@ |
| </array> |
| <key>com.apple.developer.usernotifications.communication</key> |
| <true/> |
| + <!-- Sparkle installer mach services — see LChatMac.entitlements. --> |
| + <key>com.apple.security.temporary-exception.mach-lookup.global-name</key> |
| + <array> |
| + <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string> |
| + <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string> |
| + </array> |
| </dict> |
| </plist> |
diff --git a/ios/LChatMac/LChatMac.entitlements b/ios/LChatMac/LChatMac.entitlements| index 3adfc8d..4b0652c 100644 |
| --- a/ios/LChatMac/LChatMac.entitlements |
| +++ b/ios/LChatMac/LChatMac.entitlements |
| @@ -27,5 +27,18 @@ |
| sender's photo/monogram as the icon (CommunicationNotification.swift). --> |
| <key>com.apple.developer.usernotifications.communication</key> |
| <true/> |
| + <!-- Sparkle under the sandbox: the running app must connect to the |
| + installer's status (-spks) and installer (-spki) mach services, or |
| + every update dies at "An error occurred while running the updater" — |
| + SUEnableInstallerLauncherService alone only launches Installer.xpc; |
| + these exceptions let the app talk to it (Sparkle's sandboxing docs). |
| + Missing since sandboxing landed (#474), so no 0.5.0+ build could |
| + self-update; the fix only arms builds that CONTAIN it, hence the |
| + one-time manual install to 0.7.3. --> |
| + <key>com.apple.security.temporary-exception.mach-lookup.global-name</key> |
| + <array> |
| + <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string> |
| + <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string> |
| + </array> |
| </dict> |
| </plist> |