问题描述
我正在 MacOS 中构建 launchdaemon(由于需要以 root 身份运行),但是我遇到了一个障碍,其中我需要调用的 Apple SDK 之一要求用户响应提示以访问输入监控。
正如 this post 所理解的那样,这对于守护进程是不可能的,因为它不在图形会话中运行(如果我的术语在这里不合适,请原谅我)。
我查看了其他一些开源程序,我看到为了解决这个问题,他们将守护进程作为守护进程和运行。
代理的存在纯粹是为了触发提示,然后守护进程在后台等待,检查是否授予权限,然后在获得继续所需的访问权限后接管。
问题 1
这是否有效,因为代理和守护程序的包标识符是相同的,所以如果代理获得输入监控权限,那么守护程序也会获得输入监控权限吗?
我想我记得读过,虽然可以在代理和守护程序之间使用相同的包标识符(因为我相信它们在不同的启动进程中运行),但不推荐这样做。
问题 2
代理是否能够触发输入监控权限提示,因为它在登录后运行,因此以用户身份在这个所谓的“图形会话”中运行?
问题 3
如果我对方法的理解是正确的,那么这是一种足够强大的方法来让守护程序访问 TCC 提示后面的 API 吗?或者,还有更好的方法?或者,这是人们根本不应该做的事情吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)