myApp has "Access WiFi Information Entitlement" as:
<key>com.apple.developer.networking.wifi-info</key>
<true/>
CNCopyCurrentNetworkInfo() works on iOS12.3.1.
But it returns nil on iOS13 with same network environment as iOS12.3.1.
myApp has "Access WiFi Information Entitlement" as:
<key>com.apple.developer.networking.wifi-info</key>
<true/>
CNCopyCurrentNetworkInfo() works on iOS12.3.1.
But it returns nil on iOS13 with same network environment as iOS12.3.1.
Check out WWDC 19 session 713, Advances in Networking, Part 2 (maybe 75% of the way through the presentation). CNCopyCurrentNetworkInfo is now only available to your app in three cases:
If you don't meet at least one of these conditions CNCopyCurrentNetworkInfo will always return nil in iOS 13.
Having said all of that, I have ensured now that my app does have "Always Allow" location but I am still receiving nil from CNCopyCurrentNetworkInfo. Will report back if I figure it out.
EDIT: disregard that last statement, forgot I had commented out CNCopyCurrentNetworkInfo while attempting to implement the new WiFi framework 😁
Apparently, you also need Location permission in iOS 13
I met too, did you resolved?
Theres a new class called wifi which seems to return router information. Not sure what credentialis are needed, havent tried it.
I saw it, But I can't reference it on my project.In WIFI.framework has two classs. The WFConnectionStatus has 'SSID', 'BSSID', 'networkName' properties, but they don't has any overview.
Yes, it doesnt seem to work. The iOS simulator doesnt build, or link. I dont have iOS 13 on my device yet to test that. On a Mac build it didnt work though although it compile and link. Even with WIFI capabilities when i wrote this:
connection.activate()
connection.connectionStatusHandler = { newStatus in
print(newStatus)
}
let deadlineTime = DispatchTime.now() + .seconds(4)
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
print(self.connection.lastConnectionStatus)
}
The status was null and the handler was not called. Worth logging his I suppose.
Yeah, It's nil. And I can't understand WFConnectionStatus's networkName discussion, "Only available to the app that originally added the corresponding known network." Do you understand what's mean?
It means if your app didn't add the network to the phone, you can no longer see the name of the network the user is connected to. It’s one of the new privacy features in iOS 13, to prevent developers from using the network name to guess the user's location.
Check out WWDC 19 session 713, Advances in Networking, Part 2 (maybe 75% of the way through the presentation). CNCopyCurrentNetworkInfo is now only available to your app in three cases:
If you don't meet at least one of these conditions CNCopyCurrentNetworkInfo will always return nil in iOS 13.
Having said all of that, I have ensured now that my app does have "Always Allow" location but I am still receiving nil from CNCopyCurrentNetworkInfo. Will report back if I figure it out.
EDIT: disregard that last statement, forgot I had commented out CNCopyCurrentNetworkInfo while attempting to implement the new WiFi framework 😁
I got dic from CNCopyCurrentNetworkInfo!
thanks 🙂
Hi, I'm still struggeling to get the networkInfo after successfully applying a NEHotspotConfiguration on iOS 13. As far as I understood I should be able to get infos about that network without location permissions.
/// retrieve the current SSID from a connected Wifi network
private func retrieveCurrentSSID() -> String? {
let interfaces = CNCopySupportedInterfaces() as? [String]
let interface = interfaces?
.compactMap { [weak self] in self?.retrieveInterfaceInfo(from: $0) }
.first
return interface
}
/// Retrieve information about a specific network interface
private func retrieveInterfaceInfo(from interface: String) -> String? {
guard let interfaceInfo = CNCopyCurrentNetworkInfo(interface as CFString) as? [String: AnyObject],
let ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
else {
return nil
}
return ssid
}
CNCopyCurrentNetworkInfo never returns anything. This code works fine on iOS 12.
It actually worked once when I switched from "kCNNetworkInfoKeySSID as String" to "SSID", but I guess that was just random. I did not change anything about the code but it stopped working again. Maybe beta 1 is flaky in that regard?
Does it work consistently for you?
I got the same problem in beta 2, did you resolve your issue?
I got the same problem in ios 13 beta 2, anybody resolve?
I think you should get support ios13 at iphone6
it's still happened on ios 13 beta 5
I'm still having the same problem with this in the newly released iOS 13 (build 17A577). Anyone else having a similar issue still?