特集:builder的Lionのみどころ--開発環境:API周りの変更点(前編)

小池邦人 (有限会社オッティモ)
2011-08-01 20:37:00
  • このエントリーをはてなブックマークに追加

OS Xにもサンドボックス(Sandboxing)

 Lionでは、iOS同様にの各アプリケーションの保存環境としてサンドボックスが導入された。その目的はセキュリティの強化である。アプリケーションパッケージ(ディレクトリ)外からのアクセスを遮断し、ファイル保存場所も限定する。

 iOSでは特定ファイル(写真など)は関連APIを使い入手するが、これはLionでも同様である。しかしこのままだと、サンドボックス外に保存された一般ファイルにアクセスできない。そのためパワーボックス(Powerbox)と呼ばれる仕組みが提供されている。具体的には、ファイル読み込み時にはNSOpenPanelを使い、ファイル保存時にはNSSavePanelを使う事でパワーボックス経由のファイルアクセスが実現される。基本的には今まで通りの手順である。

Powerbox経由でのファイルオープンはNSOpenPanelが担当する※クリックで拡大画像を表示 Powerbox経由でのファイルオープンはNSOpenPanelが担当する※クリックで拡大画像を表示

 アプリケーションにサンドボックスを適用するには、Xcode 4.1でEntitlements(資格)ファイルを用意する。また、こうしたアプリケーションのビルドには、Appleから入手したコードサイン認証も必要となる。

 Entitlementsには、自身が使える機能がXMLで記述されている。例えば、ファイル書き込みは可能か?ネットワークアクセス可能か?などである。また、こうした資格のON/OFFだけでなく、iCloudで同期すべきドキュメントやキーバリュー値を共有するコンテナ識別子(Container Identifier)も記述する。同じ識別子を持つLionやiOSのアプリケーションは、そのファイル内容をクラウド上で共有(同期対象)することなる。

EntitlementsファイルはXcode 4.1から作成できる※クリックで拡大画像を表示 EntitlementsファイルはXcode 4.1から作成できる※クリックで拡大画像を表示

 Lionでは処理の独立性を高めるために「XPCサービス」と呼ばれる仕組みが提供されている。プラグインのように、アプリケーションからコアな処理を分離して起動する仕組みである。各XPCサービスは自分自身のEntitlementsを持てるので、親アプリケーションでは許されていない資格もOKにできる。例えば、ネットワークアクセスはXPCモジュールだけに限定すれば、より強固なセキュリティが実現できるわけである。

 現状では、サンドボックス不採用のアプリケーションも開発可能であるが、将来的にOS XとiOSが統合する時期が来れば、OS X側でもサンドボックスが必須となり、アプリケーション入手もMac App Store経由のみ(つまりiOS同等)になるのかもしれない。

オートセーブとバージョン管理

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]