We are currently trying to evaluate Local Push Notifications by getting the Receiving Voice and Text Communications on a Local Network project up and running, so far without luck.
The Problem
We cannot get the "app-push-provider" entitlement to appear in our provisioning profile.
What we've tried
We applied for the Network Extension App Push Entitlement and got a reply 3 days ago saying that we had been approved but that the changes might not be visible in our account for a few days.
Since then we have:
- downloaded the sample project
- selected "Automatically manage signing" and selected our team on the various projects in the Simple Push workspace
- created a new app group and used that
Doing so results in Xcode spinning with "Creating provisioning profile..." and "Waiting to repair..." before keeling over with this warning:
Provisioning profile "iOS Team Provisioning Profile: xxxx" doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement.
OK fine, next we:
- created a manual App ID and enabled the "App Groups" and the "Network Extensions" capabilities
- created a development Provisioning Profile using the above App ID
- downloaded and used that Provisioning Profile instead but with the same result
Provisioning profile "yyyy" doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement.
If we look at the generated provisioning profile we can see that the values under com.apple.developer.networking.networkextension
does not contain the "app-push-provider" value so...we understand why this doesn't work at least :)
Re-re-reading the README of the sample project we notice this:
After you register the IDs, create two provisioning profiles (one for each identifier) that include the App Push Provider entitlement.
But we cannot find any steps or checkboxes that allows us to do anything out of the ordinary when generating a provisioning profile.
Questions
- Well first and foremost, are we doing anything wrong, or has the changes simply just not propagated through yet?
- Is there any visible way for us to see that we have access to the "App Push" entitlement?
Concerns
(or: questions that keeps you awake at night when this isn't just working as expected :))
- Have we given you wrong information when asking for the permission? In the form we filled out an Apple ID based on an app created in App Store Connect. That app matches a bundleID we've created and that we use when creating an App ID and provisioning profile.
- Do we need to use something else than a developer Provisioning Profile
- Currently we've used a user with Admin rights to generate these profiles. As the request for this entitlement needed to be created by the Account Owner...does that mean that it has to be the Account Owner who generates the App ID and profiles?
Thank you for reading this. Any help is highly appreciated.
selected "Automatically manage signing" and selected our team on the various projects in the Simple Push workspace Provisioning profile "iOS Team Provisioning Profile: xxxx" doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement.
Let me tell you how I configured a test bed project I created for NEAppPushProvider
. Possibly this will give you some insight on how to resolve your issue:
-
Go to the Developer Portal and create two new explicit bundle identifiers for your host app and Network Extension targets. Make sure the Network Extension capabilities are enabled. Note that the Network Extension target's bundle id must contain the host app's bundle identifier prefix.
-
Create two new provisioning profiles for each of these new bundle identifiers that you just created. During the profile creation process there should be a step called "Additional Entitlements." Make sure to add the Push Provider Entitlement to each of your profiles.
-
Download your provisioning profiles.
-
Go to Xcode and create a new project and set the explicit bundle identifier that you created from the Developer Portal for your host app and Network Extension target. (Note that you may need to create a dummy
NEAppProxyProvider
target and then copy the shell forNEAppPushProvider
over into this provider to get the Network Extension target configured correctly.) -
Select manual signing for each target in Xcode and import the new provisioning profiles you created.
-
Make sure that both your local entitlement files for each target in Xcode contain the key for:
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-push-provider</string>
</array>
Try this out. If this does not work then I would recommend opening a TSI for more help.
Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com