在沙盒环境下部署的应用程序是否可以重新启动?

3

“when sandbox is deployed” 是什么意思? - TheAmateurProgrammer
@theAmateurProgrammer,我的意思是说,我的应用程序是沙盒化的。 - Terry
你的应用程序在编译时应该被沙盒化。为什么需要重新启动应用程序? - TheAmateurProgrammer
1个回答

10

一个沙盒应用程序可以使用NSWorkspacelaunchAppWithBundleIdentifier:方法启动自己的新副本;在调用时传递选项NSWorkspaceLaunchAsyncNSWorkspaceLaunchNewInstance,以异步方式创建运行您的应用程序的新进程,并在调用返回后终止当前进程(或将该调用作为响应NSApplicationWillTerminateNotification的一部分)。


我已经尝试使用"com.apple.dock"作为参数来调用launchAppWithBundleIdentifier:...方法,看起来它是有效的,但仍然在控制台中出现了"lsboxd: @AE ..."。我不确定它是否与沙盒限制冲突了? - Terry
@Terry - 或许我误解了,你不应该使用 "com.apple.dock" 这种方式在沙盒运行下重启你自己的应用。尽管如此,或许这个方法已经不再起作用了,因为沙盒非常容易出问题,如果可能的话应该避免使用它。这个方法来自于开发者论坛上的一个帖子 - 在今年早些时候搜索 "launchAppWithBundleIdentifier" - 里面有一个苹果工程师确认了这个过程。如果它已经不再工作,请在那个帖子中发布,并且也许同一位苹果工程师会回复你。 - CRD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接