Skip to content

Commit ff0c27e

Browse files
committed
Add macOS entitlements and TCC usage descriptions
- Info.plist: NS*UsageDescription keys so macOS shows permission prompts for network volumes, removable drives, and protected folders instead of silently denying access - Entitlements.plist: hardened runtime entitlements for notarization - tauri.conf.json: reference entitlements file for production signing
1 parent 2ec28a5 commit ff0c27e

3 files changed

Lines changed: 31 additions & 1 deletion

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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+
<!--
5+
Entitlements for Cmdr production builds (hardened runtime).
6+
Used during Apple code signing (codesign -\-entitlements).
7+
Required for notarization.
8+
-->
9+
<dict>
10+
<!-- WebView (WKWebView) needs unsigned executable memory for JIT -->
11+
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
12+
<true/>
13+
<!-- Allow loading Tauri's WebView framework without Apple-signed validation -->
14+
<key>com.apple.security.cs.disable-library-validation</key>
15+
<true/>
16+
</dict>
17+
</plist>

apps/desktop/src-tauri/Info.plist

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,17 @@
44
<dict>
55
<key>CFBundleName</key>
66
<string>Cmdr</string>
7+
8+
<!-- Privacy usage descriptions shown in macOS TCC prompts -->
9+
<key>NSNetworkVolumesUsageDescription</key>
10+
<string>Cmdr needs access to network volumes to browse and manage files on your NAS and other network drives.</string>
11+
<key>NSRemovableVolumesUsageDescription</key>
12+
<string>Cmdr needs access to removable volumes to browse and manage files on USB drives and external disks.</string>
13+
<key>NSDesktopFolderUsageDescription</key>
14+
<string>Cmdr needs access to your Desktop folder to browse and manage files there.</string>
15+
<key>NSDocumentsFolderUsageDescription</key>
16+
<string>Cmdr needs access to your Documents folder to browse and manage files there.</string>
17+
<key>NSDownloadsFolderUsageDescription</key>
18+
<string>Cmdr needs access to your Downloads folder to browse and manage files there.</string>
719
</dict>
820
</plist>

apps/desktop/src-tauri/tauri.conf.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
"resources/llama-server.tar.gz"
5656
],
5757
"macOS": {
58-
"bundleName": "Cmdr"
58+
"bundleName": "Cmdr",
59+
"entitlements": "./Entitlements.plist"
5960
}
6061
}
6162
}

0 commit comments

Comments
 (0)