文档说有一个plist需要被复制到〜/ Library / LaunchAgents中,这显然不可能在沙盒中.是否有某种系统API可以为我复制plist?我已经看过Apple的SMJobBless示例代码,但似乎是注册特权LaunchDaemon而不是无特权的LaunchAgent.
SMLoginItemSetEnabled()
.您必须将长期运行的代理打包为常规.app包并将其放入Content / Library / LoginItems的主应用程序包中.
然后,在主应用程序的运行时,您可以使用SMLoginItemSetEnabled()调用和代理程序包的标识符来启用和禁用代理程序.如果您的主应用程序退出,则代理保持活动状态.如果用户注销并重新启动或重新启动,操作系统将在用户重新登录时重新启动您的代理.
更新:正如Dmitry所说,文档不再附带我最初提到的示例,但另一个Apple sample code project,用于App Sandbox,演示了相同的API(请参阅文件NSXPCConnection LoginItem.m).