Search code examples
ios12

iOS 12 and above, fetch Wifi SSID to which iPhone is connected


I have gone through the link which explains getting SSID without private library. This works for devices below iOS 12.0.1. From iOS 12.0.1 onwards, the same library is not beneficial anymore. My code snippet is:

CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSString *networkName = CFDictionaryGetValue(myDict, kCNNetworkInfoKeySSID);

These lines crash in Xcode 10 and above. myDict is returned nil. Is the library changed? Any other way to achieve this task?


Solution

  • Additional settings are reqiured in iOS12 for getting Wifi SSID.

    Summary is that Apple qoutes:

    To use this function in iOS 12 and later, enable the Access WiFi Information capability for your app in Xcode. When you enable this capability, Xcode automatically adds the Access WiFi Information entitlement to your entitlements file and App ID.

    Thus, Enable Access WiFi Information for the Bundle ID in developer account. Reenable the associated provisional profiles.

    In Xcode, under Targets -> Capabilities -> Access WiFi Information -> Enable it to ON.