验证macOS App以唤醒Mac进入睡眠状态

时间:2017-05-29 04:57:54

标签: macos authentication iokit

我正在寻找一种方法来验证一个macOS应用程序,该应用程序允许该应用程序将用户的Mac从睡眠中唤醒。

我知道我可以安排一个电源事件来使用类似的代码唤醒计算机here

当我运行IOPMSchedulePowerEvent代码时,下面代码中“result”的值为(IOReturn)result = -536870207。

IOReturn result = IOPMSchedulePowerEvent(CFBridgingRetain(someCFDate), NULL, CFSTR(kIOPMAutoWake));

this forum post上进行一些挖掘并找到类似问题的人之后,我非常确信我的问题的根源在于需要对应用进行身份验证以允许其将用户的Mac从睡眠中唤醒。我找到了一些用于本地身份验证的苹果文档here,但它似乎仍未完全解决我的问题。

因此,简而言之,我如何为应用程序提供将Mac从睡眠中唤醒所需的身份验证?

编辑:我一直在研究这个问题,我想我一直在取得良好进展。

对于初学者来说,我获得kIOReturnNotPrivileged的原因是因为你必须在Xcode中以root身份运行应用程序。这可以通过Product>编辑调试方案来完成。方案>编辑Scheme并将“Debug Process as”选项更改为“Root”。

将应用程序设置为以root身份运行,我能够正确安排电源事件以使我的机器进入睡眠状态并在规定的时间将其唤醒。

如果您的应用程序已沙箱化并以root身份运行,那么Xcode 8.3中似乎会出现一些其他问题。我会创建另一篇帖子来提出这个问题。

0 个答案:

没有答案