eleven / messenger Public

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>
Paul Campbell e7716ff90eea768119c1b4c78164e737c4b61d7e parent fe10b0b
4 files changed, +29 −8
  • changelog/2026-07-18-mac-0-7-2.md +0 −8
  • changelog/2026-07-18-mac-0-7-3.md +10 −0
  • ios/LChatMac/LChatMac-Dev.entitlements +6 −0
  • ios/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>