我必须指定哪些权利才能使用默认值 write com.apple.screencapture in NSTask()

What entitlements must I specify to use defaults write com.apple.screencapture in NSTask()

我的应用程序运行良好,然后提交到应用程序商店并发现了这个叫做沙箱的东西:-p

我一直在阅读文档和开发者论坛,但我无法具体弄清楚我需要添加什么权利才能使其正常工作:

let task = NSTask()
    task.launchPath = "/bin/bash"
    task.arguments = ["-c",
        "defaults write com.apple.screencapture type gif;killall SystemUIServer"]
    task.launch()

我想也许 com.apple.screencapturecom.apple.security.temporary-exception.shared-preference.read-write 因为 BOOLEAN YES 可以解决问题,但不幸的是

在没有 NSTask 和没有 shell:

的情况下进行

对于默认值,请使用 com.apple.security.temporary-exception.shared-preference.read-write 并添加您要修改的域(例如 com.apple.screencapture),然后使用 CFPreferencesSetValue()

对于 killall 使用 com.apple.security.temporary-exception.apple-events 和 运行 Applescript / 发送 AppleEvents 来终止特定进程。

如您所见,这两项权利都是暂时的,您需要充分的理由才能让它们通过审核。沙盒的目标是应用程序不会干扰其他应用程序。尤其是终止 SystemUIServer 可能会非常麻烦。