eleven / messenger Public

Clone
git clone https://amadan.net/eleven/messenger

Plain git — no account needed to clone.

Download

Download this file

1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4<dict>
5 <!-- The ship entitlements the scaffold build deferred: sandbox on, real
6 keychain group, communication notifications. The restricted ones
7 (keychain group, communication) ride the provisioning profile that
8 automatic signing embeds at archive time. Existing installs keep their
9 identity across this change: Keychain.swift always used the
10 data-protection keychain and reads group-first-then-ungrouped, and
11 everything the app keeps on disk is a rebuildable cache. -->
12 <key>com.apple.security.app-sandbox</key>
13 <true/>
14 <key>com.apple.security.network.client</key>
15 <true/>
16 <!-- read-write: attachment uploads read picked files; "Save" panels write
17 downloads — both user-initiated through the powerbox. -->
18 <key>com.apple.security.files.user-selected.read-write</key>
19 <true/>
20 <!-- Same app-family group as iOS: the saved-instances store
21 (LChatCore/Keychain.swift) writes here once the entitlement exists. -->
22 <key>keychain-access-groups</key>
23 <array>
24 <string>$(AppIdentifierPrefix)com.elevenmessenger.messenger.shared</string>
25 </array>
26 <!-- Same app group as iOS. Two on-device caches resolve into this container
27 (containerURL returns the path on macOS whether or not the entitlement
28 exists, so a sandboxed build WITHOUT it has all access silently denied):
29 SharedAvatarCache — every avatar read/write is denied, banners fall back
30 to the monogram forever (#474); and MessageStore's local SQLite/FTS index
31 (LChatCore/MessageStore.swift, storeDir) — the store can't open, so
32 message search returns nothing while the feed still renders (#1121). The
33 Mac App ID needs the App Groups capability so the embedded profile
34 authorizes the group (unprovisioned group access prompts on macOS 15+). -->
35 <key>com.apple.security.application-groups</key>
36 <array>
37 <string>group.com.elevenmessenger.messenger</string>
38 </array>
39 <!-- Communication notifications: banner restyle via INSendMessageIntent —
40 sender's photo/monogram as the icon (CommunicationNotification.swift). -->
41 <key>com.apple.developer.usernotifications.communication</key>
42 <true/>
43 <!-- Universal links (docs/native-onboarding.md E.2, #1376): clicking an
44 https /join link on a covered domain opens the Mac app directly
45 instead of riding the elevenmessenger:// custom-scheme handoff. Same
46 domain set as iOS (LChat.entitlements — Apple's rule: every domain
47 named in the shipped binary, so custom domains keep the web join page
48 + its "Open in the app" button). Inert until the server half deploys:
49 the AASA names the Mac app id since PR #1383 (main.go serveAASA). -->
50 <key>com.apple.developer.associated-domains</key>
51 <array>
52 <string>applinks:*.elevenmessenger.com</string>
53 <string>applinks:11ch.at</string>
54 <string>applinks:*.11ch.at</string>
55 </array>
56 <!-- Sparkle under the sandbox: the running app must connect to the
57 installer's status (-spks) and installer (-spki) mach services, or
58 every update dies at "An error occurred while running the updater" —
59 SUEnableInstallerLauncherService alone only launches Installer.xpc;
60 these exceptions let the app talk to it (Sparkle's sandboxing docs).
61 Missing since sandboxing landed (#474), so no 0.5.0+ build could
62 self-update; the fix only arms builds that CONTAIN it, hence the
63 one-time manual install to 0.7.3. -->
64 <key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
65 <array>
66 <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string>
67 <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string>
68 </array>
69</dict>
70</plist>
71