如何为OSX创建守护程序/启动代理程序/后台应用程序?

时间:2014-03-27 06:09:00

标签: objective-c xcode macos xcode5 launchd

我并不完全确定我正在寻找的资格是......代理,守护程序,还是只运行没有GUI的小型后台应用程序。

我有一个我写的小型obj-c程序在终端中运行。它需要不断检查数据库中的值,并每秒进行大约2次调用。我已经有了它的工作,我只是不确定如何构建这个东西以便发布...

理想情况下,我希望用户能够像普通的Mac应用程序一样安装它,但我不确定这是否可行。我正在寻找类似Dropbox在后台运行的方式,并通知用户新文件,或者LogMeIn如何在后台运行,或者我还有一个名为Aurora的应用程序,后台进程名为“Aurora”唤醒助手“。这些是我试图用这个小的obj-c程序模仿的例子。

我如何在Xcode 5中构建这个版本?

1 个答案:

答案 0 :(得分:4)

要将您的应用作为守护程序或代理运行,您应该创建一个.plist文件并将其放到/Library/LaunchDaemons/Library/LaunchAgents。 示例.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.example.daemon</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/me/daemon</string>
        <string>-flag1</string>
        <string>-flag2</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>SessionCreate</key>
    <true/>
    <key>UserName</key>
    <string>mrDaemonUser</string>
</dict>
</plist>

您可以在Daemons and Services Programming Guide找到更多信息。

要在用户计算机上安装应用程序,您应该创建一个安装程序包并编写一些脚本,以便将文件放在用户系统的正确位置。有关详细信息,请参阅此主题:Making OS X Installer Packages like a Pro