我希望沙盒应用程序符合Mac App Store的3月1日沙盒要求.我的应用程序包括一个内置的终端模拟器,它利用forkpty()调用在伪tty环境中启动进程.不幸的是,这个调用在沙箱下失败,错误"操作不允许",尽管fork()调用工作正常.据推测,forkpty()调用需要对/ dev /目录进行读/写访问才能创建伪tty(根据手册页).我已经尝试添加一个临时的沙箱权利(com.apple.security.temporary-exception.files.absolute-path.read-write),对/的读/写访问权限,我现在确实可以在任何地方读取和写入文件文件系统,但forkpty()调用仍然失败并出现相同的错误.有谁知道我怎么可以forkpty()在沙盒下工作?
我的应用程序是一个编程文本编辑器,内置终端模拟器和文件浏览器,因此它基本上需要访问整个文件系统.除了这个forkpty()问题,这个临时权利似乎做了我需要的.但Apple会接受一个具有如此松散定义的临时例外权利的应用程序吗?
先谢谢你们.我真的希望我可以启动并运行这个沙箱,所以我继续通过App Store分发我的应用程序.
我需要能够在Shell脚本中运行AppleScript。我正在使用“ AppleScript Runner”以便处于交互模式,因此支持对话框等。我已经工作了,但是我需要将AppleScript Runner应用程序的退出状态返回到外壳程序,以便我可以查看脚本中是否有任何错误。
这是我的shell脚本:
output=$(/usr/bin/osascript << EOT
tell application "AppleScript Runner"
do script "somescript.scpt"
end
EOT)
status=$?
Run Code Online (Sandbox Code Playgroud)
在这里,我的变量$ status仅以osascript命令的退出状态结束(无论somescript.scpt是否成功成功运行,其退出状态均为0),而不是应用程序AppleScript Runner的退出状态。
有人知道我该怎么做吗?
谢谢!