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

sai*_*mac 6 macos sandbox entitlements mac-app-store swift

我正在构建一个我想在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()
Run Code Online (Sandbox Code Playgroud)

方法2,使用IORequestIdle(swift):

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

mah*_*tin 0

很遗憾地说这是不可能的。沙箱的目的是防止某个应用程序占据整个计算机。

您可以尝试通过沙盒指南中记录的渠道获得临时异常。