iOS 12 及以上,获取 iPhone 连接的 Wifi SSID
iOS 12 and above, fetch Wifi SSID to which iPhone is connected
我经历了link which explains getting SSID without private library。这适用于 iOS 12.0.1 以下的设备。从 iOS 12.0.1 开始,相同的库不再有用。我的代码片段是:
CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSString *networkName = CFDictionaryGetValue(myDict, kCNNetworkInfoKeySSID);
这些行在 Xcode 10 及更高版本中崩溃。 myDict 返回 nil。图书馆改了吗?还有其他方法可以完成此任务吗?
iOS12 中需要其他设置才能获取 Wifi SSID。
总结是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.
因此,为开发者帐户中的 Bundle ID 启用访问 WiFi 信息。重新启用关联的临时配置文件。
在 Xcode 中,在目标 -> 功能 -> 访问 WiFi 信息 -> 启用它。
我经历了link which explains getting SSID without private library。这适用于 iOS 12.0.1 以下的设备。从 iOS 12.0.1 开始,相同的库不再有用。我的代码片段是:
CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSString *networkName = CFDictionaryGetValue(myDict, kCNNetworkInfoKeySSID);
这些行在 Xcode 10 及更高版本中崩溃。 myDict 返回 nil。图书馆改了吗?还有其他方法可以完成此任务吗?
iOS12 中需要其他设置才能获取 Wifi SSID。
总结是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.
因此,为开发者帐户中的 Bundle ID 启用访问 WiFi 信息。重新启用关联的临时配置文件。
在 Xcode 中,在目标 -> 功能 -> 访问 WiFi 信息 -> 启用它。