It's still not clear how to request Location Services permissions for a non-UI app.
@eskimo I would greatly appreciate it if you could clarify a few points:
There is no way to obtain location permissions for non-UI apps, like simple console apps. Is that correct?
As far as I understood your previous comments, LaunchAgent installed by SMAppService() can obtain Location permissions and retrieve SSID info. What are the requirements for this? Should SMAppService() be called by the UI app (let's call it the 'installer'), or can a console app also invoke SMAppService()? It's also unclear which app should possess the com.apple.security.personal-information.location entitlement and the NSLocationAlwaysUsageDescription definition: the 'installer' or the LaunchAgent?
Thanks in advance.
Post
Replies
Boosts
Views
Activity
Update: Installing a daemon using SMAppService does not fix the issue (even with 'com.apple.security.personal-information.location' in entitlements).
Does anybody have a clear solution on how to make it work for background daemons on Sonoma?
@eskimo
Can you please confirm if just using the SMAppService will resolve the problem of obtaining SSID information?
Or do I need some additional entitlements or need to make adjustments to Location Services?
I am currently experiencing the same issue with obtaining SSID.
Here is the code example I use:
CWWiFiClient *client = [CWWiFiClient sharedWiFiClient];
CWInterface *interface = [client interface];
NSString *ssid = [interface ssid];
It returns nil on Sonoma.
This code is part of a LaunchDaemon with a plist file located in /Library/LaunchDaemons, which was registered using SMJobBless(). I understand that this method is now considered obsolete, but it was working fine before the Sonoma release.
Thanks in advance.