Using the Multicast Networking Additional Capability

This thread has been locked by a moderator.

Apple Recommended Answer

Answers

Old Process


To use the multicast entitlement (com.apple.developer.networking.multicast) you must manually create a provisioning profile that has this additional capability, then configure your app’s target to use that profile, then actually enable the entitlement. The following sections described each of those steps in detail.

IMPORTANT These instructions assume you’re building a typical app using Xcode. This will switch your app to use manual code signing. Additional capabilities issued via the old process are not compatible with automatic code signing.

Note These instructions were written for Xcode 12.0, iOS 14.0, and the developer web site at the time of publication.

Preparatory Work


Before creating your profile, you must prepare the ground:
  1. Make sure you have permission to create provisioning profiles. If not, you’ll need to coordinate with the folks on your team who do. See App Store Connect Help > Role permissions for more information about roles and permissions.

  2. Go to the Account page on the developer web site.

  3. Pull down the menu at the top right and confirm that you’re logged in to the right team.

  4. If your app does not already have an explicit App ID, create one for it. See Developer Account Help > Register an App ID for instructions.

Create a Provisioning Profile


To create a provisioning profile that includes the multicast additional capability:
  1. In the Account page on the developer web site, navigate to the Certificates, Identifiers & Profiles section.

  2. On the left, click Profiles.

  3. Click the add (+) button at the top.

  4. Select iOS App Development and click Continue (you can repeat this process for a distribution profile later on).

  5. Select your App ID and click Continue.

  6. Select the certificates and devices as you would for any other profile.

  7. You’ll now find yourself on the Additional Entitlements page. Select Multicast Networking from the popup and click Continue. If you don’t see the Additional Entitlements page, or you don’t see Multicast Networking listed there, see No Additional Entitlements Page below.

  8. Give the profile a name and click Continue.

  9. Click Download.

Configure Your Target


To configure your app’s target to use the profile:
  1. Locate the dowloaded profile in the Finder.

  2. Drop it on to Xcode.

  3. In the project editor, select your target on the left.

  4. Switch to the Signing & Capabilities tab.

  5. Disable “Automatically manage signing”.

  6. Select your profile from the Provisioning Profile popup.

Enable the Entitlement


To enable the entitlement in your app:
  1. In your app’s .entitlements file, add a com.apple.developer.networking.multicast entry with a Boolean value of true.

  2. Build your app for the device (not the simulator!).

  3. In Terminal, run the following command to confirm that your app was signed with the entitlement:


Code Block
% codesign -d --entitlements :- /path/to/your.app | grep -A 1 "com.apple.developer.networking.multicast"
<key>com.apple.developer.networking.multicast</key>
<true/>


4. Still in Terminal, run the following command to confirm that your profile allows use of the entitlement:

Code Block
% security cms -D -i /path/to/your.app/embedded.mobileprovision | grep -A 1 "com.apple.developer.networking.multicast"
<key>com.apple.developer.networking.multicast</key>
<true/>


No Additional Entitlements Page


If, in step 7 of Create a Provisioning Profile, you don’t see the Additional Entitlements page, check the following:
  • That you’re not set up to use the new process, as described in the New Process post above. If you are, follow those instructions instead.

  • That you’re logged in to the right team (step 3 of Preparatory Work). This is the most common cause of this problem.

  • That you chose to create an iOS App Development profile (step 4 of Create a Provisioning Profile).

If this doesn’t help, wait a day and try again. It can take time for this access to propagate through our systems.

If you still can’t get it working, run through the process again taking a screen shot at each step. Then get back in touch with us by replying to the email that notified you of your request’s approval, making sure to include your follow-up number in the response.