iOS 26 - Identify network switch

Currently in our app, to identify a network switch in device we are doing NEHotspotHelper.register and then NEHotspotHelperHandler block. When the command type is evaluate and if the network.didJustJoin, we are identifying it as a network switch. As a part of moving our code base to iOS 26, if is found that NEHotspotHelper is deprecated. What is the proper replacement for this?

Answered by DTS Engineer in 867775022

Quoting the docs:

NEHotspotHelper allows your app to participate in the process of authenticating with hotspot networks, that is, Wi-Fi networks where the user must interact with the network to gain access to the wider Internet.

Hotspot helper is, and has never been, a recommended way to “identify a network switch”.

What is the proper replacement for this?

The replacement for the supported uses cases of NEHotspotHelper are the hotspot helper evaluation and authentication provider extensions. See here. However, these are tightly focused on the supported use cases, and thus are unlikely to help you with the unsupported use cases.

To help you with that, I need a better understanding of your high-level goals. What are you actually trying to detect? And to what end?

Share and Enjoy

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

In Apple documentation it is mentioned to use NEHotspotManger instead. Could find similar methods in NEHotspotEvaluationProvider extension methods. What are the set up required to start this extension?

Quoting the docs:

NEHotspotHelper allows your app to participate in the process of authenticating with hotspot networks, that is, Wi-Fi networks where the user must interact with the network to gain access to the wider Internet.

Hotspot helper is, and has never been, a recommended way to “identify a network switch”.

What is the proper replacement for this?

The replacement for the supported uses cases of NEHotspotHelper are the hotspot helper evaluation and authentication provider extensions. See here. However, these are tightly focused on the supported use cases, and thus are unlikely to help you with the unsupported use cases.

To help you with that, I need a better understanding of your high-level goals. What are you actually trying to detect? And to what end?

Share and Enjoy

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

What I’ve Done:

Previously, I registered the application as a HotspotHelper using NEHotspotHelper.register(options:queue:handler:).


In the Hotspot Helper app’s command handler block, I identified the relevant network via the NEHotspotHelperCommand and used the didJustJoin API to determine if the network was joined.

For migrating this to Xcode 26 ,

  • I added a NEHotspotEvaluationProvider extension.

  • I implemented the handleCommand method which receives NEHotspotHelperCmmand parameter.

  • Similarly, I added code to identify the network via the NEHotspotHelperCommand and used didJustJoin to check whether the network was joined.

The Issue:

While running on Xcode 26/iOS 18, the handleCommand method in my NEHotspotEvaluationProvider extension is not being triggered when switching between networks.

I suspect this might be due to incomplete or incorrect configuration for NEHotspotManager in the main app, or missing setup steps for the new extension.

My Question:

  • What exact configuration steps are required in the main app project and Info.plist/entitlements to ensure NEHotspotEvaluationProvider gets called?

  • Are there any new keys, capabilities, or background modes required specifically for this new extension type?

  • Does the app need to trigger NEHotspot configuration or registration APIs at launch or on demand to activate the extension?

Thanks for all the extra info, but I’m still confused. Hotspot helper exists so that your app can participate in the process of authenticating with a hotspot network, that is, a Wi-Fi network where the user must interact with the network to gain access to the wider Internet. We call this out at the top level of the docs. I was hoping for an explanation of how your app uses the hotspot helper API to meet that goal.

Share and Enjoy

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

iOS 26 - Identify network switch
 
 
Q