Hi everyone,
I’m working with UDP Multicasting on iOS (iOS 15+) using Network.framework and facing a confusing issue.
Setup:
- Multicast IP: 239.255.0.1
- Port: 45454
- Using NWConnectionGroup / NWMulticastGroup
- NSLocalNetworkUsageDescription is present in Info.plist
- Devices are on the same Wi-Fi network
Problem:
- Receiving multicast packets works perfectly
- Sending multicast packets does NOT work
- No errors are thrown
- send() completion handler reports success
- stateUpdateHandler sometimes doesn’t transition to
.ready - No packets are actually transmitted on the network
Observations:
- The app can receive data from other multicast senders
- Sending appears to be silently blocked
- Reinstalling the app fixes the issue
- This points to a Local Network permission problem
- If permission was denied once, iOS does not re-prompt
- Inbound multicast works, outbound multicast is blocked
Questions:
- Is it expected on iOS that receiving multicast works even when sending is blocked?
- Is reinstalling the app the only way to recover if Local Network permission was denied?
- Is there any reliable runtime way to detect that outbound multicast is blocked?
- Is NWConnectionGroup the correct and only supported way to send multicast on iOS?
Any clarification or official guidance would really help. Thanks in advance!