Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use wildcard on info-plist for Bonjour services

My apps using bonjour service to conversation with each other via local network. I am facing a problem on Xcode12 with OS14 device.

A device publish a service with server type name depends on self device IP address (example: 192.168.33.20 -> _1921683320._tcp)

B device searching a service with service type depends on A device IP address (example: _1921683320._tcp)

According to apple document..From OS14~

https://developer.apple.com/documentation/multipeerconnectivity

Important
Apps that use the local network must provide a usage string in their Info.plist with the key NSLocalNetworkUsageDescription. Apps that use Bonjour must also declare the services they browse, using the NSBonjourServices key.

because my service type name is named by local network ip, it is changeable base on local network setting, so I am thinking about to using wildcard to define the service type name.

example: _*._tcp

but seems wildcard is not available on this definition.(I tried it)

I am also thinking about changing the naming method on A device (example: 192.168.33.20 -> _20._tcp) and add _1.tcp ~ _255.tcp to info-plist

But if I changed the naming method, B device could not find A device until version up.

Any idea for this problem? Please help.

like image 436
May Avatar asked Jan 31 '26 20:01

May


1 Answers

I'm currently working through the same issue - Bonjour service name is dynamically created based off the iPad name to form a local mesh network. The conclusion that I have came to is com.apple.developer.networking.multicast is required for this to function without completely overhauling how all that logic is done. (More info here)

You will have to request permission from apple by filling out a form here. Let me know if this works for you!

like image 197
KaYaK Avatar answered Feb 03 '26 01:02

KaYaK



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!