iOS 12 获取SSID
2018-09-25 本文已影响151人
小凡凡520
获取SSID的方法
+ (NSString *)wifiSSID {
NSString *ssid = nil;
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifnam in ifs) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
if (info[@"SSID"]) {
ssid = info[@"SSID"];
}
}
return ssid;
}
问题
在iOS 12中,经断点调试发现info为nil。猜测是CNCopyCurrentNetworkInfo方法在iOS 12中有了变化。通过查看官方文档,发现文档中增加了Important字样的描述:
1977357-c6edcac63870539a.png
解决方案
看到这里,解决方案就有了:Xcode -> [Project Name] -> Targets -> [Target Name] -> Capabilities -> Access WiFi Information -> ON
1977357-440a2e179fbe5040.png
按照上述方案操作完毕后,会发现工程的.entitlements文件中多了一对Key-Value:
1977357-ca973ac66e85ba9e.png
至此,就能在iOS 12+中正常获取到WiFi的SSID了。