2009-08-10

/Applicationsのアプリと、/var/mobile/Applicationsのアプリの出来ることの違い

/Applicationsのアプリで出来て、/var/mobile/Applicationsのアプリ(Xcodeで開発する一般アプリ)で出来ないこと。
  • NSThreadは使えるが、popen()はPARENTAGE_FORK DENY 1のエラーで阻害される。やはりバックグラウンド処理はFrameworkの範疇のお行儀の良いものでないと許されない(ちなみにバックグラウンド実行のNSTaskはiPhone OSのFrameworkから元々外されている;参照noviさんのBlogエントリ)。
  • Shellのターゲットは作成できるけれど、デプロイ時に実行権が外される(chmod -x)。
逆に、/Applicationsアプリで出来ないこと。
  • Settings Bundleによるアプリ設定アプレットが効かない。一般アプリはplistを作成するだけで、設定アプリ(Preferences.app)に組み込まれた設定項目と画面を、非常に容易に生成することができますが、/Applicationsのアプリはこの機能を使えないようです。
  • SpringBoardによるアイコンの自動iPhone化(rounded border と glossy effect) が利かない。一般アプリではべた塗りのアイコンを作成すれば済むが、/Applicationsアプリでは自分でアイコンのiPhonne化をしないといけない。(逆に、一般アプリでアイコンの自動いPhone化を抑止するにはInfo.plistにUIPrerenderdIcon属性を設定する。)
[2011-05-14] アイコンの自動iPhone化を追記。これが分からず、1週間くらい悩みました。一般アプリと/Applicationsアプリのアイコンpngを入れ替えたりして確かめました。

No comments:

Post a Comment