3

我是 OS X 和 mac 编程的新手。我正在寻找一个可以连续运行或每 30 秒唤醒一次以执行一些小任务的应用程序。它会做一些事情,比如通过网络服务检查天气,如果温度降到冰点以下,它会发送一封电子邮件。在 Windows 中,我只会使用服务或在任务调度程序中放置重复任务。在 Mac 应用商店允许的 OS X 中是否有标准的方法来实现这一点?我想写一些我可以放在商店里的东西,但苹果似乎对运行后台进程有模糊的限制。

我对launchd有所了解,但我不知道是否允许我使用它。理想情况下,即使没有人登录,该过程也会运行,但它可能不需要 root 访问权限。如果有人碰巧登录,如果它发送电子邮件温度警报,它会触发一些弹出窗口。我还会有一些 GUI,用户可以修改配置文件来确定后台进程的行为。不过,我预计该项目不会有任何应用商店限制。

4

2 回答 2

3

我很确定不会允许像这样以隐形方式运行的应用程序进入 App Store。你想要的是创建一个只有菜单栏的应用程序,可以通过在应用程序的信息中设置一个键来启用它,即LSUIElement. 尽管除非用户登录,否则它将无法运行,但这是您成功进入商店的唯一方法。

于 2011-12-22T04:15:26.607 回答
2

MAS 指南有几项会影响您的禁令。转到指南并阅读第 2 节。特别考虑 2.15、2.23 和 2.27。我不知道有什么方法可以让您的应用程序在登录之前运行而无需在某些时候请求管理员权限(即使您在运行时不使用该权限)。

我可能会将其设置为登录项(系统偏好设置>用户>登录项),可能作为建议的LSUIElement应用程序sudo rm -rf。绝对如果这是你的第一个应用程序,我无论如何都不会深入launchd研究。这是我处理过的最令人愤怒的系统进程之一。

于 2011-12-22T04:33:41.543 回答