Skip to content

Conversation

jeanfbrito
Copy link
Collaborator

@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.

Copy link

Windows installer download

Copy link

Copy link

@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
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