Macos 如何在启用Mac App Sandbox的情况下运行Shell脚本?

Macos 如何在启用Mac App Sandbox的情况下运行Shell脚本?,macos,shell,mac-app-store,appstore-sandbox,Macos,Shell,Mac App Store,Appstore Sandbox,有没有可能让一个在沙盒中运行的应用程序执行一个shell脚本? 该脚本使用两个基本命令: defaults write killall 我知道沙盒有一些例外,可以通过授权文件添加,但不确定是否可以让用户确认小脚本的执行,然后运行它 请给我一个实际的提示。。。 当我在关闭沙盒的情况下运行我的应用程序时,一切正常。 使用沙盒时,两个命令都不起作用,这在控制台中显示: killall: warning: kill -TERM 12322: Operation not permitted 首先,你为

有没有可能让一个在沙盒中运行的应用程序执行一个shell脚本? 该脚本使用两个基本命令:

defaults write
killall
我知道沙盒有一些例外,可以通过授权文件添加,但不确定是否可以让用户确认小脚本的执行,然后运行它

请给我一个实际的提示。。。 当我在关闭沙盒的情况下运行我的应用程序时,一切正常。 使用沙盒时,两个命令都不起作用,这在控制台中显示:

killall: warning: kill -TERM 12322: Operation not permitted

首先,你为什么要对如此强大的应用程序进行沙箱处理?您想修改其他特定应用程序的默认值和killall(以某种方式可能)还是“计算机上存在的所有应用程序”

如果是针对特定的其他应用程序,为什么不在没有shell的情况下使用它呢? 默认情况下,使用com.apple.security.temporary-exception.shared-preference.read-write写入并添加要修改的域(例如com.apple.DigitalColorMeter)并使用CFPreferencesSetValue()


对于killall,请使用com.apple.security.temporary-exception.apple-events并运行Applescript/send AppleEvents终止特定进程

如果你有很好的理由,你可以这样杀死应用程序:


当应用程序处于沙盒状态时,可以从
NSApplicationScriptsDirectory
目录运行脚本

NSURL *scriptsDirectory = [[NSFileManager defaultManager] URLForDirectory:NSApplicationScriptsDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
那么,用户如何为希望运行脚本的应用程序授予访问权限呢

机制非常简单:应用程序只能从用户帐户中的特定文件夹运行脚本。脚本进入该文件夹的唯一方法是用户将脚本复制到该文件夹中。本质上,OSX为您提供了这些脚本中内容的只读视图


关于这个主题的一篇好文章^^ ^

嘿,我想你的答案听起来很好。。。让我在接下来的几天里检查一下,我给你信用;)