适配iOS12

作者: _Boring | 来源:发表于2018-10-11 10:16 被阅读69次

    此篇主要记录我自己在做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后就全空了。网上翻遍了也没找到为什么,可能用的人也不多。
    终于在苹果官方的开发文档找到了。

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

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

    相关文章

      网友评论

      本文标题:适配iOS12

      本文链接:https://www.haomeiwen.com/subject/gcamaftx.html