Skip to content

fix: Enable UDP Host Candidates for VoIP on macOS MAS Builds#3029

Merged
jeanfbrito merged 1 commit intomasterfrom
ice-ice-baby
May 19, 2025
Merged

fix: Enable UDP Host Candidates for VoIP on macOS MAS Builds#3029
jeanfbrito merged 1 commit intomasterfrom
ice-ice-baby

Conversation

@jeanfbrito
Copy link
Copy Markdown
Member

@jeanfbrito jeanfbrito commented May 16, 2025

This PR addresses an issue where VoIP calls on macOS builds distributed via the Mac App Store were not generating UDP host ICE candidates. This limited the types of connections that could be established, potentially impacting call quality and reliance on TURN servers.

The problem was traced back to missing entitlements required for the application to perform the necessary network operations (specifically, listening for incoming UDP connections on the local network) within the macOS sandbox environment.

The core solution involves adding the com.apple.security.network.server entitlement to the entitlement files used for macOS builds:

  • Added com.apple.security.network.server to build/entitlements.mas.plist, which is used for the final Mac App Store submission builds.
  • Added com.apple.security.network.server to build/entitlements.mas.inherit.plist, which is used for local development/debugging builds that simulate the MAS environment. This file was also updated to include other necessary functional entitlements and com.apple.security.get-task-allow for debugging.
  • build/entitlements.mac.plist, used for non-MAS hardened runtime builds, was reviewed and already contained the necessary com.apple.security.network.server entitlement.

Additionally, the electron-builder.json configuration was updated to explicitly point the mac and mas build targets to use these respective entitlement files (build/entitlements.mac.plist, build/entitlements.mas.plist, build/entitlements.mas.inherit.plist), ensuring the correct permissions are applied during the build process.

By including the appropriate network entitlements, the application should now have the necessary permissions on macOS MAS builds to generate UDP host candidates, improving the chances of establishing direct peer-to-peer connections for VoIP calls.

Further testing is required on a MAS-like build using the programmatic RTCPeerConnection.getStats() API to confirm UDP host candidates are now being generated.

@github-actions
Copy link
Copy Markdown

Windows installer download

@github-actions
Copy link
Copy Markdown

@github-actions
Copy link
Copy Markdown

@jeanfbrito jeanfbrito merged commit 5385a01 into master May 19, 2025
10 checks passed
@jeanfbrito jeanfbrito deleted the ice-ice-baby branch May 19, 2025 16:15
@jeanfbrito jeanfbrito changed the title fix: Add network entitlements fix: Enable UDP Host Candidates for VoIP on macOS MAS Builds May 19, 2025
sreeja2007 pushed a commit to sreeja2007/Rocket.Chat.Electron that referenced this pull request Mar 2, 2026
Ram-sah19 pushed a commit to Ram-sah19/Rocket.Chat.Electron that referenced this pull request Mar 10, 2026
Ram-sah19 pushed a commit to Ram-sah19/Rocket.Chat.Electron that referenced this pull request Mar 10, 2026
Ram-sah19 pushed a commit to Ram-sah19/Rocket.Chat.Electron that referenced this pull request Mar 10, 2026
Ram-sah19 pushed a commit to Ram-sah19/Rocket.Chat.Electron that referenced this pull request Mar 10, 2026
Ram-sah19 pushed a commit to Ram-sah19/Rocket.Chat.Electron that referenced this pull request Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant