Search code examples
iosxamarinnetworkingnehotspothelper

Is it possible for me to compile and deployment a NEHotspotHelper project to my device before Apple approve my API request?


I am now implementing a project which will use NEHotspotHelper API. Through Xamarin.

I know this API requires approvement from apple. So I have already sent my request and waiting for response.

But I want to write the code and test it in my device first.

Is that possible?

Thank you!

The following step are what I have done.

  1. Apply for special approval.

  2. Modify the provisioning profile and add it to the Keychain(haven't got the newest approval, just choose the capability we need) [Access WiFi Information/Hotspot/Network Extensions/Wireless Accessory Configuration]

  3. Update Entitlement.plist

3.1 Set "com.apple.developer.networking.HotspotHelper" to true

3.2 Enable "Access WiFi Information, Hotspot, Network Extensions, and Wireless Accessory Configuration".

  1. Update Info.plist

4.1 set "Required background modes" with value "network-authentication"

After doing all above. I still got "(0xE8008016)" The executable was signed with invalid entitlment.


Solution

  • Yes, you can compile it, but I would suggest you wait for Apple's response.

    Historically, they have been pretty serious when it comes to security and especially approving the requests for NEHotspotHelper usage. Even some obvious app usages like IoT devices, smart home apps, etc have been rejected.

    Quote from the official docs:

    NEHotspotHelper is only useful for hotspot integration. There are both technical and business restrictions that prevent it from being used for other tasks, such as accessory integration or Wi-Fi based location.

    Useful information about Wi-Fi management APIs - FAQ

    Edit: Some notes about deploying to device:

    1. You can deploy to a simulator, but nothing will happen - the scanning commands won't be invoked, the code will simply register the helper and that's it.
    2. However, you cannot deploy to a real device, since in order to do that, you'll need to have that entitlements "embedded" into the provisioning profile. After you have been granted permission from Apple, you can modify your provisioning profile and it will have another field at the bottom for "special entitlements".

    Like so: enter image description here