nor*_*don 10 macos cocoa sandbox
我想在Mac上的Sandbox中使用LSOpenApplication()启动另一个自己的应用程序.
当然,我在权限文件中的'com.apple.security.temporary-exception.files.absolute-path.read-write'中添加了一行用于启动.
但是,在启动时,控制台吐出一个错误,该错误不允许进程xxxx启动"foo.app",因为它之前尚未由用户启动.手动启动一次后,它可以无错误地启动.
即使以前没有启动,我该如何启动该流程?这与沙盒无关吗?
rud*_*udy 14
您可以在很少的条件下启动另一个应用程序并获得所需的结果.com.apple.security.temporary-exception.files.absolute-path.read-write没有获得有关LaunchServices的任何信息,因此您可以删除该权利.
作为一个沙盒应用程序,您实际上可以进行子启动,这是一种有意的行为,因为启动另一个应用程序在技术上违反了沙箱模型.您可以使用的方法是:
我会说osascript调用有效,因为它与 - [NSWorkspace launchApplication:]大致相同.接受包标识符或绝对/相对路径的LS调用都不会起作用.
| 归档时间: |
|
| 查看次数: |
4651 次 |
| 最近记录: |