zeroconf plugin not working with IOS 14.4

I have recently published a new build version of my game (Solar2D 2021.3641) on the Apple Store (with Xcode version 12.4) and on the Google Play Store.

I use the zeroconf plugin to search a nearby game. The plugin works fine on android devices and only on apple devices with version lower than IOS 14.4 (I have tried on two devices with IOS 14.4 and it seems they can’t browse or publish with zeroconf, but a device with IOS 12.4.9 and 11.4 works fine using the exact same build.

So I’ve suspected the problem isn’t about my build but with the version of IOS since it still works on older versions with the same build… I was wondering if anyone had a similar situation and how to fix it or could explain to me what is happening…

Thanks in advance

I’ve finally found the cause of my problem and I want to post it here in case someone else run into the same problem. It would even be better to include those informations in the zeroconf documentation page. @rob

In iOS 14, in order to discover all Bonjour services, you will need to request an entitlement. It will make sense for apps that are utilities to help scan a network to have this entitlement, but most apps don’t need that. Using one or a few Bonjour services just needs an Info.plist key.

Here’s the link to request an entitlement for your app (if needed):
https://developer.apple.com/contact/request/networking-multicast

Here are the new keys to add in your build.settings to declare you zeroconf services (Bonjour Services):

iphone =
{
    plist = 
    {
        NSLocalNetworkUsageDescription = "This app uses the local network to discover nearby devices",
        NSBonjourServices = 
        { 
            "_your_services._tcp"
        },
    },
}

And finally here is a WWDC video about it:

Hope this helps:)