当然,我在启动的授权文件中添加了一行到’com.apple.security.temporary-exception.files.absolute-path.read-write’.
但是,当启动时,控制台发出一个错误,它不允许进程xxxx启动“foo.app”,因为它以前没有被用户启动.
手动启动一次后,可以无错地启动.
即使以前不启动,我如何启动该过程?
这与沙盒无关吗?
作为一个沙盒应用程序,您实际上可以启动子系统是非常有限的,这是一个有意的行为,因为启动另一个应用程序在技术上是违反沙箱模型的.您可以使用的方式是:
>在您的应用程序中包含xpc服务,并启动它为您启动
>您可以通过NSTask运行应用程序,这将导致此应用程序在启动时继承您的沙箱
>您可以按名称启动应用程序,但是从我所看到的一般情况来看,这通常仅在应用程序位于/ Applications文件夹中时才起作用,即 – [NSWorkspace launchApplication:]
>您可以启动包含应用程序的应用程序,但只有当您已经使用SMLoginItemSetEnabled()
我会说osascript调用工作,因为它的做法大致相同 – [NSWorkspace launchApplication:].没有接受捆绑标识符或绝对/相对路径的LS呼叫都可以正常工作.
总结以上是内存溢出为你收集整理的osx – 如何在Mac上的沙箱中启动另一个进程?全部内容,希望文章能够帮你解决osx – 如何在Mac上的沙箱中启动另一个进程?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)