A problem about networking-multicast

Hello everyone, I seem to have a problem with networking-multicast permissions.

The program we developed uses the UPnP protocol, so we applied for networking-multicast permission for our development plan.
Reference: < https://developer.apple.com/contact/request/networking-multicast>.

After that, we set Identifiers with check Multicast Networking in Additional Capabilities and update Profiles.

After rebuilding the program, the program can find UPnP devices in the network on my iPhone, and it does work.

The program is developed using Flutter, runs on both iOS/Android platforms, and has both professional and regular versions. No matter which platform or version can work properly.

When only one program is installed on an iOS device, everything is fine. But if two programs are installed on the same device at the same time (for example, our professional version and normal version, BundleID is different), various problems will occur:

case 1:

  1. Install the normal version
  2. Start the normal version: Does work

case 2:

  1. Install the professional version
  2. Start the professional version: Does work

case 3:

  1. Install the normal version
  2. Install the professional version
  3. Start the normal version: Unable to discover UPnP device
  4. Start the professional version: Unable to discover UPnP device

case 4:

  1. Install the professional version
  2. Install the normal version
  3. Start the professional version: Unable to discover UPnP device
  4. Start the normal version: Unable to discover UPnP device

case 5:

  1. Install the normal version
  2. Start the normal version: Does work
  3. Install the professional version
  4. Start the professional version: Does work

case 6:

  1. Install the professional version
  2. Start the professional version: Unable to discover UPnP device
  3. Install the normal version
  4. Start the normal version: Unable to discover UPnP device

Sum up the phenomenon: There is no problem with installing a separate program. Install two programs at the same time: it will work only if it is executed in a specific order (case 5).

Add a few points:

  1. We use Flutter development, iOS and Android use the same code.

There is no problem with the above case on Android.
2. We use flutter_flavor ( reference: https://pub.dev/packages/flutter_flavor) configuration ordinary version & professional version.
3. In all cases where problems occur, the pop-up window of the system requesting networking-multicast will not pop up. It looks like that UPnP is not working because of permissions.
4. In all cases only one Application run at anytime. Before starting the new program, we will forcibly exit the other program to ensure that the port is released.
5. We found an UPnP programs developed by other developers on the Appstore, which do not conflict with our regular version or professional version, and both sides can work properly.

We think this looks like a bug of the iOS system. I wonder if anyone else has encountered a similar situation? Would you like to give us a hint of the direction of our solution? Thank you very much.

Or at least, I wonder if anyone can help us figure out whether this problem is the bug of the iOS system or the problem of our program itself.

Thanks a lot.

It’s possible that you’re being hit by a duplicate LC_UUID issue. This is something I’ve talked about before, but never in a coherent way. I decided to fix that today by adding FAQ-17 to the Local Network Privacy FAQ.

Run the dwarfdump test described therein and let us know what you get.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

A problem about networking-multicast
 
 
Q