适配iOS12

此篇主要记录我自己在做iOS12的时候碰到的问题。

一、获取Wi-Fi的Mac(BSSID)地址失败

有些人可能会搜索为什么CNCopySupportedInterfaces或CNCopyCurrentNetworkInfo在iOS12中不能用了,获取的值全部变成空了。
先贴代码

    NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());
    id info = nil;
    for (NSString *ifname in ifs) {
        info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((CFStringRef)ifname);
        if (info && [info count]) {
            break;
        }
    }
    
    NSDictionary *dic = (NSDictionary *)info;
    NSString *ssid = [dic objectForKey:@"SSID"];
    NSString *bssid = [[dic objectForKey:@"BSSID"] lowercaseString];
    //补0操作可以不要
    if (bssid.length > 0) {
        NSArray *arr = [bssid componentsSeparatedByString:@":"];
        NSMutableArray *newArr = [NSMutableArray arrayWithCapacity:arr.count];
        for (NSString *subStr in arr) {
            if (subStr.length == 1) {
                [newArr addObject:[NSString stringWithFormat:@"0%@",subStr]];
            }
            else {
                [newArr addObject:subStr];
            }
        }
        bssid = [newArr componentsJoinedByString:@":"];
    }
    NSLog(@"ssid = %@, bssid = %@",ssid,bssid);

在iOS11及一下这里打印是有值的,但是升级了iOS12后就全空了。网上翻遍了也没找到为什么,可能用的人也不多。
终于在苹果官方的开发文档找到了。

适配iOS12_第1张图片
图1

就是说要在Xcode中打开允许访问Wi-Fi信息。参考图2
图2

目前就这些,以后遇到了再补充吧!

你可能感兴趣的:(适配iOS12)