编写Mac App Store上允许的连续运行应用程序的标准方法是什么

时间:2011-12-22 04:01:24

标签: objective-c macos mac-app-store

我是OS X和mac编程的新手。我正在寻找一个连续运行的应用程序,或者每30秒唤醒一次以执行一些小任务的应用程序。它可以通过网络服务查看天气,如果温度低于冰点则会拍摄电子邮件。在Windows中,我只使用服务或在任务调度程序中放置重复任务。有没有一种标准的方法可以在OS X 中实现这一点,mac app store允许?我想写一些我可以放在商店里的东西,但Apple似乎对运行后台进程有一些模糊的限制。

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

2 个答案:

答案 0 :(得分:3)

我非常确定一个不可思议地运行的应用程序不会被允许进入App Store。您想要的是创建一个仅限菜单栏的应用程序,可以通过在应用程序的信息中设置密钥来启用该应用程序,即LSUIElement。虽然除非用户登录,否则无法运行,但这是您成功进入商店的唯一途径。

答案 1 :(得分:2)

MAS准则有几项禁令会对您产生影响。转到the guidelines并阅读第2节。特别考虑2.15,2.23和2.27。我不知道如何在登录之前让您的应用程序运行,而不是在某些时候请求管理员权限(即使您在运行时没有使用该权限)。

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