I have a pretty simply macOS application which I've just been trying to fix since a long time ago. It's origin is really old, using the apple 802.11 framework located in
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Apple80211
and it's supposed to just scan the area and display information about the local networks nearby.
For some reason when I run the application and press the button to scan for local networks (wifi scan) It errors out and in the Xcode console I get
Process WiFiInfo is missing entitlement required for Wi-Fi user-client access: <key>com.apple.private.driverkit.driver-access</key> <string>com.apple.private.wifi.driverkit</string>
If I add those two lines to the entitlements, Xcode fails to sign my application and fails to build and run
Provisioning profile "Mac Team Provisioning Profile: com.troger.WiFiInfo" doesn't include the com.apple.private.driverkit.driver-access entitlement.
Any way I can fix this? I would really like to get this application back up to its running state as it once was before but am completely lost on how to fix this
Any way I can fix this?
No, but also yes.
Regarding your question about entitlements, this is a restricted entitlement and thus must be authorised a profile. There’s no way for a third-party developer to get a profile that authorises an Apple private entitlement. For more background on this, see TN3125 Inside Code Signing: Provisioning Profiles.
Regarding Apple80211 in general, this isn’t an API, and thus off topic for DevForums.
However, there is a supported way to achieve your overall goal, namely the public Core WLAN framework.
IMPORTANT On modern systems, Core WLAN will only return this sort of detailed info if your app has been granted the Location privilege by the user.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"