mgw*_*les 5 authentication macos iokit
我正在寻找一种方法来验证 macOS 应用程序,以允许该应用程序将用户的 Mac 从睡眠状态唤醒。
我知道我可以使用与此处提供的代码类似的代码来安排电源事件以唤醒计算机。
当我运行IOPMSchedulePowerEvent代码时,下面代码中“result”的值为(IOReturn) result = -536870207。
IOReturn result = IOPMSchedulePowerEvent(CFBridgingRetain(someCFDate), NULL, CFSTR(kIOPMAutoWake));
Run Code Online (Sandbox Code Playgroud)
在进行了一些挖掘并在此论坛帖子上找到了有类似问题的人之后,我非常有信心我的问题的根源在于需要对应用程序进行身份验证以允许它从睡眠中唤醒用户的 Mac。我发现了一些本地认证的苹果文档的位置,但它似乎仍然没有完全解决我的问题。
因此,简而言之,我如何为应用程序提供从睡眠中唤醒 Mac 所需的身份验证?
编辑:我一直在研究这个问题,我认为我一直在取得良好的进展。
首先,我得到它的原因是kIOReturnNotPrivileged你必须在 Xcode 中以 root 身份运行应用程序。这可以通过通过 Product > Scheme > Edit Scheme 编辑调试方案并将“Debug Process as”选项更改为“Root”来实现。
将应用程序设置为以 root 身份运行,我能够正确安排电源事件以使我的机器进入睡眠状态并在规定的时间唤醒它。
如果您的应用程序被沙盒化并以 root 身份运行,那么 Xcode 8.3 中似乎还会出现一些其他问题。我将创建另一个帖子来问这个问题。
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |