SystemConfiguration.CaptiveNetwork在iOS 12上不起作用

Vic*_*obe 16 ssid ios swift ios12

我有一个功能,可以检测用户的当前SSID.不幸的是,这不再适用于iOS 12.这意味着它只是跳过了if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {部分.也许这只是一个错误或它被弃用了.我在Apple Docs上找不到任何内容.在较旧的iOS 11,10和9设备上,它运行良好.

这是我的代码:

func getWiFiSsid() -> String? {
    if let interfaces = CNCopySupportedInterfaces() as NSArray? {
        for interface in interfaces {
            if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {

                ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String


            }
        }
    }
    return ssid
}
Run Code Online (Sandbox Code Playgroud)

Ckw*_*ted 34

要在iOS 12及更高版本中使用此功能,请在Xcode中为您的应用启用Access WiFi信息功能.启用此功能后,Xcode会自动将Access WiFi信息权利添加到您的权利文件和应用程序ID中.

https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo?language=objc

在此输入图像描述

  • 要启用Access WiFi信息功能,请转到项目设置 - >选择您的应用目标 - >"功能"选项卡.有一个开关打开"访问WiFi信息" (3认同)
  • 我没有在 Xcode 10 中列出的功能下看到这一点。有什么想法吗? (2认同)