I want to extend an existing macOS app distributed through the Mac App Store with the capability to track the Wi-Fi's noise and signal strength along with the SSID it is connected to over time.
Using CWWiFiClient.shared().interface(), I can get noiseMeasurement() and rssiValue() fine, but ssid() always returns nil.
I am assuming this is a privacy issue (?).
Are there specific entitlements I can request or ways to prompt the user to grant the app privilege to access the SSID values?
I figured it out. I just needed to request permission for Core Location services.
Added this code to one of my objects:
locationManager = CLLocationManager()
locationManager?.delegate = myLocationDelegate
locationManager?.requestWhenInUseAuthorization()
For my app sandbox, I also enabled
- Outgoing Connections (Client)
- Location
(I'm not certain the second one is needed)
I now get the SSID and BSSID.
Also, the app now shows up in System Setting's Location Services, where I guess the user can turn it on or off.