2011-12-22 13 views
3

私はOS XとMacプログラミングの新しいです。私は、継続的に動作するアプリを書くことを目指しています。あるいは、30秒ごとに目を覚まして、小さな仕事をしています。気温が凍結温度以下になると、Webサービスを介して天気をチェックし、電子メールを放つようなことをするでしょう。 Windowsでは、サービスを使用するか、タスクスケジューラで繰り返しタスクを実行します。 Mac OS X でこれを達成するための標準的な方法はありますか??私は店内に置くことができるものを書こうと思っていますが、Appleはバックグラウンドプロセスの実行に対してあいまいな制限を持っているようです。Mac App Storeで許可されている継続的に実行されているアプリケーションを書くための標準的な方法は何ですか?

私はlaunchdのについて少し学んだが、私はそれを使用させて頂く場合、私は言うことができません。理想的には、誰もログインしていなくてもプロセスは実行されますが、おそらくrootアクセスは必要ありません。誰かがログインしてしまった場合、電子メールの温度警告を送信するとポップアップが表示されます。また、ユーザーがバックグラウンドプロセスの動作を決定する構成ファイルを変更することができるGUIをいくつか持っています。私はしかし、プロジェクトのその部分のためのアプリケーションストアの制限を予期していない。

答えて

2

MASのガイドラインには、あなたに影響を及ぼすいくつかの禁止事項があります。 the guidelinesに行き、セクション2を読んでください。特に、2.15,2.23,2.27を検討してください。ある時点で(たとえあなたが実行時に特権を使用しなくても)管理者特権を要求することなく、ログインする前にアプリケーションを実行させる方法はわかりません。

おそらくLSUIElementというアプリとしてsudo rm -rfが示唆しているように、ログインアイテム(システム環境設定>ユーザー>ログインアイテム)にすることになります。間違いなくあなたの最初のアプリなら、私はどんな場合でもlaunchdにダイビングするつもりはない。これまでに私が扱ったシステムプロセスの中で最も怒っているものの一つです。

3

私は目に見えないもののように実行アプリがApp Storeに入ることを許可されないかなり確信しています。あなたが望んでいるのは、アプリケーションの情報にキーを設定することによって有効にすることができるメニューバー専用アプリケーションを作成することです。すなわち、LSUIElementです。ユーザーがサインインしない限り実行することはできませんが、それをストアに正常に取得する唯一の方法です。

関連する問題