Deprecation of CaptiveNetwork

I’ve been following the forum posts regarding the deprecation of <SystemConfiguration/CaptiveNetwork.h>(https://forums.developer.apple.com/thread/11807). I see that for captive network apps the CaptiveNetworks class has been replaced. Our app manages a captive network and was wondering how this effects support for pre-iOS 9 targets. Does this mean that NEHotspotHelper will be available for pre-iOS 9 targets?


Thanks,

David

Replies

Our app manages a captive network and was wondering how this effects support for pre-iOS 9 targets. Does this mean that NEHotspotHelper will be available for pre-iOS 9 targets?

No. But that shouldn’t matter because of the way that deprecation works. Deprecation has two effects:

  • At build time, if your deployment target is set to the OS where the deprecation was introduced (in this case iOS 9) or later, you get a build-time warning.

  • At run time the effect of the deprecation depends on the OS version:

    • It has no effect on versions prior to the deprecation version.

    • On the deprecation version and later, the effect can vary depending on the exact circumstances.

So, it’s fine for your captive network app to use NEHotspotHelper on iOS 9 and later and an alternative technique, based on

<SystemConfiguration/CaptiveNetwork.h>
, on earlier OS releases:
  • You won’t get a deprecation warning at build time until you set your deployment target to iOS 9 or later.

  • On iOS 8 and earlier you can continue using your old technique.

  • On iOS 9 and later you will use NEHotspotHelper.

Share and Enjoy

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

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