从沙盒应用程序锁定macbook屏幕

时间:2014-11-06 11:39:05

标签: macos swift sandbox mac-app-store entitlements

我正在构建一个我想在mac app store中分发的mac应用程序。我需要这个应用程序才能拥有锁屏功能。

我有两种不同的方法可以解决,问题是,只要我为应用启用了沙盒(这是mac应用商店所需的),这些方法都不会起作用。

您知道我需要申请哪项权利吗?或者你知道第三种方法可以使用沙盒吗?

由于

方法1,使用CGSession(swift):

var arguments = ["-suspend"]
var task = NSTask()
task.arguments = arguments
task.launchPath = "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession"
task.launch()

方法2,使用IORequestIdle(swift):

var r = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler") 
if (r > 0) {
  IORegistryEntrySetCFProperty(r, "IORequestIdle", kCFBooleanTrue)
  IOObjectRelease(r)
}

1 个答案:

答案 0 :(得分:0)

很抱歉说它无法完成。沙盒的目的是防止应用程序占用整个计算机。

您可能会尝试通过沙盒指南中记录的通道获取临时异常。