feat(desktop): declare iOS mic/camera usage descriptions for getUserMedia (LC-136) #454

Merged
vas2000-work merged 1 commit from feat/LC-136-ios-getusermedia-plist into main 2026-06-28 00:52:40 +02:00
Member

Add desktop/Info.ios.plist with NSMicrophoneUsageDescription and NSCameraUsageDescription. Tauri 2 merges this iOS-only overlay into the generated gen/apple Info.plist at build time, so it survives Xcode-project regeneration. iOS refuses to show the WKWebView getUserMedia permission prompt (silently denying capture) unless the app declares a usage-description string per requested device; with these two keys the 1:1 voice/video WebRTC call path gets exactly one OS-level prompt on first capture and the grant persists across launches.

No code-side permission hook is needed on iOS (unlike the Linux WebKit2GTK and Windows WebView2 paths): the existing no-op install_media_permission_handler fallback covers the iOS target. Updated the stale comment in src/main.rs to reflect that iOS is handled via Info.ios.plist rather than a per-platform code hook.

#LC-136

Add desktop/Info.ios.plist with NSMicrophoneUsageDescription and NSCameraUsageDescription. Tauri 2 merges this iOS-only overlay into the generated gen/apple Info.plist at build time, so it survives Xcode-project regeneration. iOS refuses to show the WKWebView getUserMedia permission prompt (silently denying capture) unless the app declares a usage-description string per requested device; with these two keys the 1:1 voice/video WebRTC call path gets exactly one OS-level prompt on first capture and the grant persists across launches. No code-side permission hook is needed on iOS (unlike the Linux WebKit2GTK and Windows WebView2 paths): the existing no-op install_media_permission_handler fallback covers the iOS target. Updated the stale comment in src/main.rs to reflect that iOS is handled via Info.ios.plist rather than a per-platform code hook. #LC-136
feat(desktop): declare iOS mic/camera usage descriptions for getUserMedia (LC-136)
Some checks failed
Create release / Create release from merged PR (pull_request) Has been skipped
check-secrets / Nosey parker (push) Successful in 4s
check-secrets / TruffleHog (push) Successful in 4s
check-secrets / Kingfisher (push) Failing after 6s
check-secrets / Nosey parker (pull_request) Successful in 6s
check-secrets / Kingfisher (pull_request) Failing after 5s
check-secrets / TruffleHog (pull_request) Successful in 7s
Check / clippy + fmt + tests (pull_request) Successful in 7m57s
5aae1faf5d
Add desktop/Info.ios.plist with NSMicrophoneUsageDescription and NSCameraUsageDescription. Tauri 2 merges this iOS-only overlay into the generated gen/apple Info.plist at build time, so it survives Xcode-project regeneration. iOS refuses to show the WKWebView getUserMedia permission prompt (silently denying capture) unless the app declares a usage-description string per requested device; with these two keys the 1:1 voice/video WebRTC call path gets exactly one OS-level prompt on first capture and the grant persists across launches.

No code-side permission hook is needed on iOS (unlike the Linux WebKit2GTK and Windows WebView2 paths): the existing no-op install_media_permission_handler fallback covers the iOS target. Updated the stale comment in src/main.rs to reflect that iOS is handled via Info.ios.plist rather than a per-platform code hook.

#LC-136
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!454
No description provided.