NEHotspotHelper register call always returns false

I have been haunted by this strange issue for days on working with the NEHotspotHelper API from network extensions.


My Xcode version is Version 10.0 (10A255)


  • We have been approved by Apple on using the HotspotHelper – NetworkExtension capabilities via the online application form.
  • The appID we are using has been properly updated with the “NetworkExtension” entitlement enabled.
  • We have recreated the development provisioning profile that matches the updated info for this appID and used manual code signing for this appID from XCode.
  • Whenever I use a physical device to test my simple code for registering handler to this NEHotspotHelper API, the returned result of the call is always false/NO;


Looks like there was a bit of gap between the documentation and actual environment, while documentation keeps asking to have com.apple.developer.networking.HotspotHelper added to the entitlement file, with Boolean value true/YES.

I have xcode complaining about this “Alien” entry every time I try to build with it, saying :-1: Provisioning profile "doesn't include the com.apple.developer.networking.HotspotHelper entitlement. (in target ‘’)


I have tried with multiple code snippet from various dev forums/ article which all of them had been claimed working without issue, and none worked for me.


I wonder if you might have an idea on what could I possibly had missed.

The appID we are using has been properly updated with the “NetworkExtension” entitlement enabled.

This entitlement (

com.apple.developer.networking.networkextension
) isn’t relevant for hotspot helper; it’s only necessary for Network Extension providers.

I have xcode complaining about this “Alien” entry every time I try to build with it, saying :-1: Provisioning profile "doesn't include the com.apple.developer.networking.HotspotHelper entitlement. (in target ‘’)

This is a pretty clear error message: The provisioning profile you’re using doesn’t include the hotspot helper entitlement (

com.apple.developer.networking.HotspotHelper
). I recommend that you dump that provisioning profile to see whether it includes that entitlement.
$ security cms -D -i /path/to/profile

I expect it won’t.

Then download a new profile from the developer web site and dump that to see if it includes the entitlement.

If this does include the entitlement, then you just have to convince Xcode to use the latest profile. If this doesn’t include the entitlement then you haven’t applied the special entitlement template correctly when you generated the profile.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thanks for your reply!

I wonder if you could help to shed some light on how to include this entitlement into the provisioning profiles

com.apple.developer.networking.HotspotHelper


I checked on the developer portal site, the only related entitlement you can enable is NetworkExtensions.


Thanks a lot!!

I checked on the developer portal site, the only related entitlement you can enable is NetworkExtensions.

You are looking in the wrong place. Special entitlements are not associated with your App ID, but are instead added when you create the profile.

I wonder if you could help to shed some light on how to include this entitlement into the provisioning profiles

Sure. Pasted in below is the boilerplate text I send to folks with problems like this.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

When you create an «iOS, macOS, tvOS» «Development / Distribution / In-House (Enterprise)» provisioning profile for the Team ID «Team ID», after selecting the devices to be included in the profile, you should see a new page entitled “Do you need additional entitlements?”. Select “«hotspot helper template name»” from the Entitlements popup to include this special entitlement in your new profile.

Once you’ve finished generating the profile, you can use it in Xcode like any other manually-generated profile.

"You are looking in the wrong place. Special entitlements are not associated with your App ID, but are instead added when you create the profile."

There is no "Do you want additional entitlements?" step in the flow I create the provisioning profile for this case in these two days.

Need smoe help please, thanks.

There is no "Do you want additional entitlements?" step in the flow I create the provisioning profile for this case

Did you apply for the Hotspot Helper special entitlement, per the instructions on this page? Did you receive confirmation from Apple that this special entitlement request was successful?

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"
Once you get the special entitlement for hotspot helper and add that to your provisioning profile, do you still have to manually go in and change the entitlements of your app and set com.apple.developer.networking.HotspotHelper to true?

I'm asking because if I don't do that then hotspot helper doesn't successfully register and the SPN feature won’t work. When I look into the macOS console

I get:
Code Block
missing com.apple.developer.networking.HotspotHelper

Basically are special entitlements different, so you have to go in and manually add the key into your entitlement?

Once you get the special entitlement … and add that to your
provisioning profile, do you still have to manually go in and change
the entitlements of your app and set
com.apple.developer.networking.HotspotHelper to true?

Yes. For more detailed advice, see the Old Process section of this thread (it relates to the multicast special entitlement, and that entitlement uses the new process, but I’ve kept the old process details around because it’s helpful in other situations, like this one).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
NEHotspotHelper register call always returns false
 
 
Q