QA1688 UIViewControllerがデバイスと一緒に回転しないのは何故ですか?

2012. 03. 31
質問:UIViewControllerがデバイスと一緒に回転しないのは何故ですか?

回答:

ビューコントローラが回転しない理由は、いくつか可能性があります。

UIViewControllerクラスはiPhoneアプリケーション用の基礎となるビュー管理モデルを提供します。

これはデバイスの方向の変更に応じて、ビューコントローラのビューを自動的に回転させるサポートを提供します。

ビューとサブビューの自動サイズ変更プロパティが適切に設定されている場合、この動作は基本的に無償で行われます。

以下に示す状況では、ビューコントローラが回転しない場合があります。

  • ビューコントローラが- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationデリゲートメソッドを実装していない。

    shouldAutorotateToInterfaceOrientation:が実装されている場合でも、サポートしたい全ての方向がYESを返すことを確認してください。

    全ての方向をサポートするには、単純に常にYESを返します。

  • ビューコントローラのUIViewプロパティがUIWindow内に組み込まれているが、追加のビューコントローラもある。

    shouldAutorotateToInterfaceOrientation:は指定されたビューコントローラの起動時に一度呼び出されますが、デバイスが回転した時に再度呼び出されることはありません。

    ビューコントローラは管理するビューと堅くバインドされており、またイベント処理に使用するレスポンダチェーンの一部でもあります。

    ビューコントローラはUIResponderクラスの子孫そのものであり、管理されているビューとスーパービュー間のレスポンダチェーンに挿入されます。

    そのためレスポンダチェーンの一部として、アプリケーション内に1つのプライマリビューコントローラを持つことが一般的です。

    通常はUIWindowに1つのプライマリビューコントローラとして、UINavigationController、UITabBarControllerまたは一般的なUIViewControllerを追加します。

    例えば下記のように呼び出します。

    [myWindow addSubview:primaryViewController.view];

    UIWindowに追加ビューコントローラのUIViewプロパティを(プライマリビューコントローラと同じレベルで)追加する場合は次のようになります。

    [myWindow addSubview:anotherController.view];

    追加ビューコントローラは回転イベントを受信することができず、回転することはありません。

    UIWindowに追加された最初のビューコントローラのみが回転します。

    :別のビューコントローラへのサブビューとして、1つのビューコントローラのUIViewプロパティを追加することができます。
    そうすることで両方のビューが回転しますが、親ビューコントローラはshouldAutorotateToInterfaceOrientation:メソッドを介してサポートされる方向を決定する管理を維持します。

    :UINavigationControllerとUITabBarControllerは、独自のビューコントローラの『スタック』や『リスト』を管理する能力を持っていることを心に留めておいてください。

  • UIWindowへのサブビューとしてビューコントローラのUIViewプロパティを追加したが、直後に途中で解放した。

    UIWindowはビューを保持しますが、ビューコントローラ自体は保持しません。

    途中で解放してはいけません。

    UIApplicationDelegateサブクラスの『retainable』プロパティとして宣言します。

    :UINavigationControllerとUITabBarControllerはビューコントローラを保持するので、追加された後でそれらを一度解放することができます。

  • UITabBarControllerまたはUINavigationControllerの全ての子ビューコントローラは、一般的な方向の設定に一致しない。

    全ての子ビューコントローラが正確に回転していることを確認するには、各タブまたはナビゲーションレベルを表す各ビューコントローラのshouldAutorotateToInterfaceOrientation:を実装する必要があります。

    それぞれ発生する回転と同じ方向に一致させる必要があります。

    つまり、同じ方向の位置について全てYESを返す必要があります。

  • superを呼び出さずに、-(id)init:または-(id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundleメソッドをオーバーライドした。

    オブジェクトを適切に初期化するには、ビューコントローラでオーバーライドする全てのinitまたはinitWithNibNameメソッドでsuperを呼び出す必要があります。



参考文献

Technical Q&A QA1688: Technical Q&A QA1688

0 CommentsPosted in 資料

QA1686 iPadとiPhoneのアプリアイコン

2012. 03. 30
質問:iPadとiPhoneで使用するアプリケーションバンドルのアイコンファイルはどのようにすればいいのですか?

回答:

iPhoneのみのアプリケーション、iPadのみのアプリケーション、そして共通アプリケーション用向けに処理するアイコンファイルのガイドラインを以下に示します。

重要:『必須』と示されたアイコンは、アプリケーションバンドルで提供する必要があります。

:iTrunesArtworkアイコンファイルはpngフォーマットですが、.png拡張子を除いた名前にする必要があります。



iPhoneのみのアプリケーション

XcodeプロジェクトのアプリケーションのResourcesグループ内に以下のファイルを含めます。

表1:iPhoneのみのアプリケーションアイコンの要件

画像サイズ
(px)
ファイル名用途要件
512 x 512iTunesArtworkiTunesでのアドホック
配布用
オプションだが推奨
57 x 57Icon.pngApp StoreとiPhone/iPod
touchでのホーム画面用
必須
114 x 114Icon@2x.pngiPhone 4でのホーム画面用
(高解像度)
オプションだが推奨
72 x 72Icon-72.pngiPadと互換を持つホーム
画面用
オプションだが推奨
29 x 29Icon-Small.pngSpotlightと『設定』用オプションだが推奨
50 x 50Icon-Small-50.pngiPadと互換を持つ
Spotlight用
Settingsバンドルを持つ場合は推奨
それ以外の場合はオプションだが推奨
58 x 58Icon-Small@2x.pngiPhone 4でのSpotlightと
『設定』用(高解像度)
Settingsバンドルを持つ場合は推奨
それ以外の場合はオプションだが推奨

Resourcesグループは図1のようになります。

図1:Resourcesグループへのファイルの追加

qa1686_6

iTunesArtWorkアイコンを除いて、Info.plistでのアイコンファイルのエントリに、これらの各ファイル名を列挙します。

後述する『Info.plistへのアイコンファイルの追加』の手順に従ってください。(図4参照)



iPadのみのアプリケーション

XcodeプロジェクトのアプリケーションのResourcesグループ内に以下のファイルを含めます。

表2:iPadのみのアプリケーションアイコンの要件

画像サイズ
(px)
ファイル名用途要件
512 x 512iTunesArtworkiTunesでのアドホック
配布用
オプションだが推奨
72 x 72Icon-72.pngApp StoreとiPadでの
ホーム画面用
必須
50 x 50Icon-Small-50.pngiPadでのSpotlight用オプションだが推奨
29 x 29Icon-Small.pngiPadでの『設定』用Settingsバンドルを持つ場合は推奨
それ以外の場合はオプションだが推奨

iTunesArtWorkアイコンを除いて、Info.plistでのアイコンファイルのエントリに、これらの各ファイル名を列挙します。

後述する『Info.plistへのアイコンファイルの追加』の手順に従ってください。(図5参照)



共通アプリケーション

XcodeプロジェクトのアプリケーションのResourcesグループ内に以下のファイルを含めます。

表3:共通アプリケーションアイコンの要件

画像サイズ
(px)
ファイル名用途要件
512 x 512iTunesArtworkiTunesでのアドホック
配布用
オプションだが推奨
57 x 57Icon.pngiPhone/iPod touchでの
App Storeとホーム画面用
必須
114 x 114Icon@2x.pngiPhone 4でのホーム画面用
(高解像度)
オプションだが推奨
72 x 72Icon-72.pngiPadでのApp Storeと
ホーム画面用
必須
50 x 50Icon-Small-50.pngiPadでのSpotlight用オプションだが推奨
29 x 29Icon-Small.pngiPadとiPhoneでの『設定』
と、iPhoneでのSpotlight用
Settingsバンドルを持つ場合は推奨
それ以外の場合はオプションだが推奨
58 x 58Icon-Small@2x.pngiPhone 4でのSpotlightと
『設定』用(高解像度)
Settingsバンドルを持つ場合は推奨
それ以外の場合はオプションだが推奨

iTunesArtWorkアイコンを除いて、Info.plistでのアイコンファイルのエントリに、これらの各ファイル名を列挙します。

後述する『Info.plistへのアイコンファイルの追加』の手順に従ってください。(図4参照)



Info.plistへのアイコンファイルの追加

アイコンファイルを追加するには、Info.plistを手動で編集する必要があります。

XcodeでInfo.plistを開き、『Icon file』エントリを選択します。

新しいキーエントリを作成するために、エントリの右端にあるプラス(+)ボタンをクリックします。
(図2参照)

図2:『Icon file』キーの下に新しいエントリを追加

qa1686_1

そして図3に示すように、キー列を(『s』を追加されていることに注意)『Icon files』と編集するか、ドロップダウンリストから『Icon files』を選択します。

図3:Info.plistのキーに『Icon files』を追加

qa1686_2

次に『Icon files』の三角印をクリックして展開し、図4と図5に示すようにアプリケーションにアイコンのエントリを追加します。

図4:iPhoneのみ、または共通アプリケーション用のアイコンファイルエントリの追加

qa1686_3

図5:iPad用アイコンファイルエントリの追加

qa1686_4

:リストされているオプションのアイコンのいずれかが提供されていない場合、システムは既存のアイコンのいずれかを自動的に適切なサイズに拡大縮小します。
しかし、アプリケーションに必要なリストされている特定サイズのアイコンは、全て提供することを強く推奨します。

詳細は『iOS Application Programming Guide』の『Build-Time Configuration Details』を参照してください。
(編注:改訂されたせいか当該項目が無くなっています。おそらく『iOSアプリケーションプログラミングガイド』の『アプリケーションバンドル(p.31)』が該当するものと思われます)

CFBundleIconFilesキーの使用についての詳細は『情報プロパティリストキー(0)~コンテンツ』を参照してください。

アプリケーションアイコンの生成についての詳細は『iOS ヒューマン インターフェイス ガイドライン』の『アプリケーションアイコン(p.182)』を参照してください。



参考文献

Technical Q&A QA1686: Technical Q&A QA1686

0 CommentsPosted in 資料

ランタイム構成のガイドライン

2012. 03. 29
●はじめに

ダイナミックコンフィギュレーションは、コードを再コンパイルせずに実行可能ファイルのプロパティを調整する便利な方法です。

アプリケーションはハードコーディングされた情報に依存せず、外部設定に基づいて僅かに異なる動作を実装します。

ユーザプリファレンスからバンドルに格納されたプロパティリストに至るまで、これらの設定を記録する方法はいくつかあります。

バンドルは、バンドルとそのコンテンツに関する情報を広範囲で格納するためにプロパティリストを使用しています。

Mac OS XとiOSは、アイコンや(iPhoneアプリケーションにおける)ステータスバーを表示するかどうかなど、アプリケーションのプロパティの決定にこれらプロパティの情報を使用します。

Mac OS XまたはiOSでアプリケーションを処理する方法の指定や、アプリケーション動作の構成に使用することができるプロパティについては、このドキュメントを読んでください。


このドキュメントの構成

このドキュメントには下記の項目が含まれています。

  • 情報プロパティリストファイル』は、情報プロパティリストファイルの導入と、システムによる使用法を提供します。

  • プリファレンスシステム』は、ユーザプリファレンスの役割と範囲、およびプリファレンスにアクセスするためのデフォルトツールの使用方法に付いて説明します。

  • 環境変数』は、アプリケーションを設定する際の環境変数の役割に付いて説明します。
    またこの節では、特定のユーザによるセッションやプロセスの環境設定を確立するためのいくつかの方法を扱います。

  • その他の設定のヒント』は、アプリケーションのための必須および推奨の設定オプションを示します。
    またこの項では、バンドルと非バンドルのアプリケーション両方を設定するための追加方法について説明します。

関連項目

情報プロパティリストファイルに含むことができるキーと値についての詳細は『情報プロパティリストキー(0)~コンテンツ』を参照してください。

プリファレンスシステムについての詳細は『Preferences and Settings Programming Guide』または『Preferences Programming Topics for Core Foundation』を参照してください。



情報プロパティリストファイル

情報プロパティリストファイルは、バンドルされた実行可能ファイルの基本的な設定情報を含む、構造化されたテキストファイルです。

ファイル自体は、通常Unicode UTF-8エンコーディングを使用してエンコードされ、内容はXMLを使用して構造化されています。

XMLのルートノードは辞書で、その内容はバンドルの異なる様相を記述するキーと値のセットです。

システムはアプリケーションに関する情報と、それがどのように設定されているかを取得するために、これらのキーと値を使用します。

したがって、全てのバンドルされた実行可能ファイル(プラグイン、フレームワーク、およびアプリケーション)は情報プロパティリストファイルを持つものと想定しています。

慣例として、情報プロパティリストファイルの名前はInfo.plistです。

このファイル名は大文字/小文字が区別されており、最初の大文字が『I』である必要があります。

iPhoneアプリケーションでは、このファイルはバンドルディレクトリの最上位に置かれています。

Mac OS Xバンドルでは、このファイルはバンドルのContentsディレクトリに置かれています。

Xcodeは、通常適切なタイプのプロジェクトを生成する時に、自動的にこのファイルを生成します。

通常Info.plistの内容は、以下の情報をシステムに伝達します。

  • ユーザから見えるバンドルの表示名

  • 実行時にバンドルを検索するために使用することができる(通常はフォームcom.yourcompany.appnameで指定する)一意の識別文字列

  • バンドルのタイプ(アプリケーション、フレームワーク、プラグイン)

  • バージョン情報

  • どのようにバンドルを起動、またはメモリに内容を読み込むかについての情報

  • バンドルの優先実行環境

  • (もしあれば)バンドルのサポートされているドキュメントタイプに関する情報

  • iPhoneアプリケーションにおける、アプリケーションが最初にどのようにコンテンツを表示するかについての情報

情報プロパティリストの生成、および含めることができるキーと値についての詳細は『情報プロパティリストキー(0)~コンテンツ』を参照してください。



プリファレンスシステム

プリファレンスは、ユーザが作業環境をカスタマイズすることができる、アプリケーションまたはシステムのオプションです。

ほとんどのアプリケーションはユーザプリファレンスを何らかの形式で読み込みます。

例えば、document-basedアプリケーションは、デフォルトのフォント、自動保存のオプション、またはページ設定情報のプリファレンスを格納することができます。

しかしプリファレンスはアプリケーションに限定されてはいません。

貴方が定義したフレームワークやライブラリから、ユーザプリファレンスを含むプリファレンス情報を読み書きすることができます。

Mac OS Xのプリファレンスシステムは、セッション間でユーザ設定の保存と復元のサポートが組み込まれています。

CarbonとCocoaアプリケーションの両方とも、プリファレンス情報を読み書きするためにCore Foundationのプリファレンスサービスを使用することができます。

またCocoaアプリケーションは、ユーザプリファレンスの読み込みにNSUserDefaultsクラスを使用することができます。

重要
ユーザプリファレンスによる想定は重要ではなく、アプリケーションはプリファレンスのデフォルトセットを再生成することができます。
プリファレンスとして、アプリケーションの初期設定データを格納するべきではありません。
初期設定データは重要であり、アプリケーションパッケージ内のプロパティリストに格納する必要があります。

プリファレンスシステムに関連付けられているキーと値の設定は、後でプリファレンス値の取得に使用されます。

ユーザプリファレンスは、ユーザのログインID、アプリケーションID、そしてホスト(コンピュータ)名の組み合わせに基づいたスコープを持ちます。

このメカニズムによって、異なるレベルで適用されるプリファレンスを生成することができます。

例えば、以下のエンティティのいずれかに適用するプリファレンス値を保存することができます。

  • 現在のホスト上にあるアプリケーションの現在のユーザ

  • ローカルネットワークに接続している、特定のホスト上のアプリケーションの全てのユーザ

  • ローカルネットワークに接続している、任意のホスト上のアプリケーションの現在のユーザ
    (ユーザプリファレンスのための通常のカテゴリ)

  • ローカルネットワークに接続している、任意のホスト上の任意のアプリケーション任意のユーザ

アプリケーションは、ユーザから取得した情報を表すこれらのプリファレンスのみを格納する必要があります。

各ユーザ毎に同じデフォルトプリファレンスのセットを格納するのは、アプリケーションのプリファレンスの管理には非効率的な方法です。

プリファレンスは、プリファレンス情報を読み込むために解析する必要がある、プロパティリストファイルに格納されています。

プリファレンスを管理するより効率的な方法は、内部にデフォルトプリファレンスのセットを格納し、デフォルトセットの上に任意のユーザカスタマイズプリファレンスを適用することです。


プリファレンスの格納方法

プリファレンスシステムは、適切なファイルシステムドメイン内のLibrary/Preferencesフォルダにあるファイルに、プリファレンスデータを格納します。

例えば単一ユーザに適用されるプリファレンスは、ユーザのホームディレクトリ内のLibrary/Preferencesフォルダにファイルが書き込まれます。

ネットワーク上の全てのユーザに適用されるプリファレンスの場合は、/Network/Library/Preferences内になります。

Library/Preferences内の各ファイル名は、アプリケーションのバンドル識別子の後に.plist拡張子を付加して構成されます。

例えばTextEditアプリケーションのバンドル識別子がcom.apple.TextEditの場合、プリファレンスファイル名はcom.apple.TextEdit.plistになります。

競合する名前が存在しないことを保証するために、AppleはJavaパッケージ名の形式と同じようなバンドル識別子(貴方の会社の独自ドメイン名の後にアプリケーションまたはライブラリ名を続ける形式)にすることを強く推奨します。

例えば、Finderの場合はcom.apple.finderを使用しています。

この方式は名前が衝突する可能性を最小限に抑え、貴方の会社のドメインの下に識別名の空間を管理する自由を残しています。

この値は、情報プロパティリストファイルのCFBundleIdentifierキーに割り当てます。

アプリケーションが適切なファイルシステムドメイン内のLibrary/Preferences以外の場所へプリファレンスの書き込みを試した場合、問題になる可能性があります。

ひとつは、プリファレンスAPIはこのような変更に対して設計されていません。

しかしより重要なのは、予期しない場所に格納されているプリファレンスはプリファレンス検索リストから除外されているため、他のアプリケーション、フレームワーク、またはシステムサービスによって認識されない可能性があることです。

Mac OS X version 10.3以前では、プリファレンスはXMLプロパティリストフォーマットで保存されていました。

Mac OS X version 10.4以降では、プリファレンスはバイナリplistフォーマットで保存されます。

plutil(1)ツールを使用して、(例えばXML形式のplistを検査できるように)あるフォーマットから別のフォーマットにファイルを変換することができますが、ファイルのフォーマットに依存しないでください。

手動でプリファレンスファイルを編集することは控えるべきです。

アプリケーションがファイルを読み込む際に、不正な情報あるいは不正確なデータが入力されていると、以降に問題が発生する可能性があります。

アプリケーション内のプリファレンスドメインから情報を取得する正しい方法は、プリファレンスAPIを使用することです。


プリファレンスドメイン

アプリケーションが既存のプリファレンス値の検索を行う場合、プリファレンスシステムは検索のスコープを現在のプリファレンスドメインに限定します。

同様に、アプリケーションが新しいプリファレンスを書き出す場合、値は現在のドメインにスコープされます。

プリファレンスドメインは、ユーザID、アプリケーション識別子、そしてホスト名の3つの情報によって識別されます。

ほとんどの場合、現在のユーザとアプリケーションのプリファレンスを指定します。

ただし、アプリケーションレベルのプリファレンスを格納するために決定する場合もあります。

それを行うには、使用していたドメインを正確に指定するため、Core Foundationのプリファレンスユーティリティの関数を使用します。

これらのルーチンの使用方法については『Preferences Programming Topics for Core Foundation』を参照してください。

表1に全てのプリファレンスドメインを示します。

プリファレンスを取得するルーチンは、要求されたキーを見つけるまで、この順番でプリファレンスドメイン内を検索します。

したがって、プリファレンスが特定ユーザや特定アプリケーションより多くのドメイン内で見つけられなかった場合、ルーチンはよりグローバルなドメインで情報を検索します。

表1 検索順序のプリファレンスドメイン

検索順序ユーザスコープアプリケーションスコープホストスコープ
1現在のユーザ現在のアプリケーション現在のホスト
2現在のユーザ現在のアプリケーション任意のホスト
3現在のユーザ任意のアプリケーション現在のホスト
4現在のユーザ任意のアプリケーション任意のホスト
5任意のユーザ現在のアプリケーション現在のホスト
6任意のユーザ現在のアプリケーション任意のホスト
7任意のユーザ任意のアプリケーション現在のホスト
8任意のユーザ任意のアプリケーション任意のホスト


defaultsユーティリティ

Mac OS Xのプリファレンスシステムには、アプリケーションドメインまたは他のドメインから(ユーザデフォルトとして知られる)プリファレンスを読み込み、書き込み、および削除するためのdefaultsと名付けられたコマンドラインユーティリティが含まれています。

defaultsユーティリティは、アプリケーションをデバッグするための補助として貴重なものです。

多くのプリファレンスはアプリケーションのプリファレンスダイアログ(または相当するもの)を介してアクセス可能ですが、プリファレンスによるウィンドウの位置は常に利用できるものとは限りません。

これらのプリファレンスについては、defaultsユーティリティで表示することができます。

ユーティリティを実行するにはターミナルアプリケーションを起動し、BSDシェルでdefaultsに必要なコマンドオプションの記述を加えて入力します。

構文と引数についての簡単な説明は、defaultsコマンドを実行してください。

完全な説明についてはdefaultsのマニュアルページを読むか、usage引数でコマンドを実行してください。

$ defaults usage

ターゲットのアプリケーションの実行中にdefaultsツールを使用して値を変更しないでください。

このような変更を行った場合、アプリケーションは変更を確認することはほとんど無く、指定した新しい値が上書きされる可能性があります。



環境変数

環境変数は動的にアプリケーションを構成する別の方法です。

多くのアプリケーションおよびシステムでは、実行可能なプログラムやヘッダファイルの場所等の重要な情報を格納するために環境変数を使用します。

変数は、変数名を伴うキー文字列と値の文字列で構成されています。

環境変数の値を取得するには、アプリケーションは標準システムライブラリ(stdlib.h)の一部であるgetenv関数を呼び出す必要があります。

この関数に要求する変数名を含む文字列を渡すと、その値、もしくは名前の変数が見つからなかった場合はnilを返します。

それによって、アプリケーションは適切な変数を使用することができます。


環境変数スコープ

環境変数はそれらを生成したプロセスおよびそのプロセスの全ての子へのスコープを持ちます。

ターミナルアプリケーションでは、環境変数を管理するために独立した独自のプロセスとして、各ウィンドウを扱います。

したがって、ターミナルウィンドウを生成し、いくつかの環境変数を定義する場合、そのウィンドウから実行する任意のプログラムがそれらの変数を継承します。

ただし、第二ターミナルウィンドウから第一ウィンドウで定義した変数へのアクセス、またはその逆はできません。

セッションは継承することができます。

例えばユーザがログインした時に、システムがユーザセッションを生成し、環境変数の標準設定を定義するとします。

するとセッション中にユーザによって起動される全てのプロセスは、ユーザの環境設定を継承することになります。

ただし、この継承は読み込みのみの関係です。

プロセスによって変数に加えた全ての変更は、プロセスに対してローカルで保持され、他のプロセスによって継承はされません。


ユーザセッション環境変数

Mac OS Xは、現在のユーザセッションのスコープ内での環境変数の定義をサポートしています。

ログインすると、ログインウィンドウアプリケーションはその名前のenvironment.plistを持つ特殊なプロパティリストファイルを検索します。

このファイルは、ユーザのホームディレクトリのルートにある.MacOSXと呼ばれるディレクトリ内に配置する必要があります。

(貴方が生成する必要がある)このファイルへのパスは以下のようになります。

~/.MacOSX/environment.plist

environment.plistファイルが存在する場合、ログインウィンドウはルート要素の子であるキーを検索します。

これらの各キーに、ログインウィンドウは同名の環境変数を登録し、それをキーの値に割り当てます。

このファイルは環境変数の定義のみをサポートしています。

スクリプトコードの他の形式を実行するためにこのファイルを使用することはできません。

ファイルのフォーマットは、ファイル内の各キーが文字列値を含んでいる、他のプロパティリストファイルと同じXMLフォーマットです。

例えば、(Xcodeがインストールされたディレクトリを<Xcode>とすると、<Xcode>/Applications/Utilitiesにある)Property List Editorアプリケーションで見ると、プロパティリストファイルは下図のようになります。

environment_plist


アプリケーション固有の環境変数

アプリケーションで使用できる環境変数を作成するには2つの方法があります。

一つ目は、ターミナルセッションで変数を定義し、同じセッションからアプリケーションを起動する方法です。

ターミナルから起動する場合、アプリケーションはそこで定義された全ての環境変数を含むセッションの設定を継承します。

アプリケーションに環境変数を関連付ける二つ目の方法は、アプリケーションの情報プロパティリストファイルにLSEnvironmentキーを含めることです。

LSEnvironmentキーは、環境変数とその値を表すキー/値ペアの任意の数を指定することができます。

アプリケーションの情報プロパティリストファイルを変更する必要があるため、このキーの使用は頻繁に変更されないオプションに最適です。

キーの使用方法についての詳細は『情報プロパティリストキー(0)~コンテンツ』を参照してください。



その他の設定のヒント

この章では、アプリケーションを構成するためのいくつかの雑多な技術を説明します。


PkgInfoファイル

PkgInfoファイルは、アプリケーションまたはバンドルのタイプとクリエータコードを指定するための代替方法です。

このファイルは必須ではありませんが、この情報にアクセスするコードのパフォーマンスを向上させることができます。

このファイルを提供するかどうかに関わらず、CFBundlePackageTypeとCFBundleSignatureキーのそれぞれを使用して、情報プロパティリストファイルにタイプとクリエータ情報を常に含める必要があります。

PkgInfoファイルの内容は、アプリケーションの4バイトの署名に続く4バイトのパッケージタイプです。

したがってテキストエディットアプリケーションの場合、タイプが『APPL』で署名が『ttxt』であるので、ファイルにはASCII文字列『APPLttxt』が含まれます。


起動引数の使用

Cocoaアプリケーションの場合、コマンドライン上で指定することによって、多くのユーザデフォルト設定をオーバーライドすることができます。

更にCocoaは、ファイルを開いたり出力するために、いくつかの追加の引数を認識します。

表1にCocoaアプリケーションで一般的に使用される、いくつかのコマンドライン引数を示します。

表1 Cocoaアプリケーションのコマンドライン引数

引数説明
-NSOpenfileNameアプリケーション起動終了後に指定されたファイルを開きます。
ファイルを開くのにはアプリケーションデリゲートの
application:openFile:メソッドを使用します。
-NSOpenTempfileNameアプリケーション起動終了後に一時ファイルとして指定された
ファイルを開きます。
ファイルを開くのにはアプリケーションデリゲートの
application:openTempFile:メソッドを使用します。
-NSPrintfileNameアプリケーション起動終了後に指定されたファイルを出力します。
ファイルを出力にはアプリケーションデリゲートの
application:printFile:メソッドを使用します。
-NSShowAllDrawing<YES>ビューのどの部分が更新されているかが確認できるように、描画
されようとしている領域を黄色で示します。
これはQuartzデバッグアプリケーションを介して使用できる機能に
似ていますが、指定されたアプリケーション上でのみ動作します。
-NSTraceEvents<YES>アプリケーションが受信したイベントの実行ログを表示します。



参考文献

Runtime Configuration Guidelines

XML用語事典/ルートノード

XML用語事典/ノード

Wikipedia/Carbon

Wikipedia/Cocoa

0 CommentsPosted in 資料

情報プロパティリストキー(0)~コンテンツ

2012. 03. 28
●コンテンツ



Info.plistキーについて


At a Glance
 アプリケーションでのInfo.plistファイルの構成
 Core Foundationキーの共通動作の説明
 Launch Servicesキーの起動時の説明
 CocoaキーのCocoaとCocoa Touchアプリケーションでの動作の説明
 Mac OS XキーのMac OS Xアプリケーションでの動作の説明
 UIKitキーのiOSアプリケーションでの動作の説明
関連項目



情報プロパティリストファイルについて


情報プロパティリストファイルの生成と編集
情報プロパティリストファイルへのキーの追加
プロパティリスト値のローカライズ
デバイス固有キーの生成
カスタムキー
推奨されるInfo.plistキー
 iOSアプリケーション用の推奨されるキー
 Cocoaアプリケーション用の推奨されるキー
 一般的なローカライズされたキー



Core Foundationキー


キーの概要
CFAppleHelpAnchor
CFBundleAllowMixedLocalizations
CFBundleDevelopmentRegion
CFBundleDisplayName
CFBundleDocumentTypes
 ドキュメントの役割
 ドキュメントのアイコン
 推奨されるキー
CFBundleExecutable
CFBundleHelpBookFolder
CFBundleHelpBookName
CFBundleIconFile
CFBundleIconFiles
CFBundleIcons
 CFBundlePrimaryIcon辞書のコンテンツ
 UINewsstandIcon辞書のコンテンツ
CFBundleIdentifier
CFBundleInfoDictionaryVersion
CFBundleLocalizations
CFBundleName
CFBundlePackageType
CFBundleShortVersionString
CFBundleSignature
CFBundleURLTypes
CFBundleVersion
CFPlugInDynamicRegistration
CFPlugInDynamicRegisterFunction
CFPlugInFactories
CFPlugInTypes
CFPlugInUnloadFunction



Launch Servicesキー


キーの概要
LSApplicationCategoryType
LSArchitecturePriority
LSBackgroundOnly
LSEnvironment
LSFileQuarantineEnabled
LSFileQuarantineExcludedPathPatterns
LSGetAppDiedEvents
LSMinimumSystemVersion
LSMinimumSystemVersionByArchitecture
LSMultipleInstancesProhibited
LSRequiresIPhoneOS
LSRequiresNativeExecution
LSUIElement
LSUIPresentationMode
LSVisibleInClassic
MinimumOSVersion



Cocoaキー


キーの概要
NSAppleScriptEnabled
NSDockTilePlugIn
NSHumanReadableCopyright
NSJavaNeeded
NSJavaPath
NSJavaRoot
NSMainNibFile
NSPersistentStoreTypeKey
NSPrefPaneIconFile
NSPrefPaneIconLabel
NSPrincipalClass
NSServices
NSSupportsAutomaticTermination
NSSupportsSuddenTermination
NSUbiquitousDisplaySet
UTExportedTypeDeclarations
UTImportedTypeDeclarations



Mac OS Xキー


キーの概要
APInstallerURL
APFiles
ATSApplicationFontsPath
CSResourcesFileMapped
QuartzGLEnable



UIKitキー


キーの概要
UIAppFonts
UIApplicationExitsOnSuspend
UIBackgroundModes
UIDeviceFamily
UIFileSharingEnabled
UIInterfaceOrientation
UILaunchImageFile
UIMainStoryboardFile
UINewsstandApp
UIPrerenderedIcon
UIRequiredDeviceCapabilities
UIRequiresPersistentWiFi
UIStatusBarHidden
UIStatusBarStyle
UISupportedExternalAccessoryProtocols
UISupportedInterfaceOrientations
UIViewEdgeAntialiasing
UIViewGroupOpacity



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(11)~UIKitキー(2)

2012. 03. 27
UIStatusBarHidden

UIStatusBarHidden(ブール値/iOS)は、アプリケーション起動時にステータスバーを最初に非表示にするかどうかを指定します。

説明
YESステータスバーを非表示。
NOステータスバーを表示。



UIStatusBarStyle


UIStatusBarStyle(文字列/iOS)は、アプリケーションを起動した際のステータスバーのスタイルを指定します。

この値はUIApplication.hヘッダファイルで宣言されているUIStatusBarStyle定数に基づきます。

デフォルトのスタイルはUIStatusBarStyleDefaultです。



UISupportedExternalAccessoryProtocols

UISupportedExternalAccessoryProtocols(配列/iOS)は、アプリケーションがサポートし、外部アクセサリハードウェアとの通信に使用できるプロトコルを指定します。

配列内の各要素は、サポートされる通信プロトコル名の文字列が列挙されています。

アプリケーションは、このリスト内のプロトコルから任意の数を任意の順序で含めることができます。

システムは、アプリケーションが選択する必要があるプロトコルの決定に、このリストを使用せず、アプリケーションがアクセサリとの通信が可能である場合のみ、決定に使用します。

アクセサリとの通信が開始された時に、適切な通信プロトコルを選択するのはコードに任されています。

このキーはiOS 3.0以降でサポートされています。

外部アクセサリとの通信についての詳細は『iOSアプリケーションプログラミングガイド』の『外部アクセサリとの通信(p.65)』を参照してください。



UISupportedInterfaceOrientations


UISupportedInterfaceOrienrations(配列/iOS)は、アプリケーションがサポートするインターフェイスの方向を指定します。

システムはアプリケーションを起動する際の初期方向の選択に、(現在のデバイスの方向と一緒に)この情報を使用します。

このキーの値は文字列の配列です。

表5に配列に含めることができる有効な文字列値を示します。

表5 サポートされている方向

説明
UIInterfaceOrientation
Portrait
デバイスは、ホームボタンが下部にある持ち方のポートレートモードです。
方向を指定しない場合、この方向がデフォルトと仮定します。 
UIInterfaceOrientation
PortraitUpsideDown
デバイスは、ホームボタンが上部にある持ち方の、逆さまのポートレート
モードです。 
UIInterfaceOrientation
LandscapeLeft
デバイスは、ホームボタンが左側にある持ち方のランドスケープモードです。
UIInterfaceOrientation
LandscapeRight
デバイスは、ホームボタンが右側にある持ち方のランドスケープモードです。

このキーはiOS 3.2以降でサポートされています。



UIViewEdgeAntialiasing


UIViewEdgeAntialiasing(ブール値/iOS)は、Core Animationレイヤがピクセルの境界に整列されていないレイヤを描画する時に、アンチエイリアシングを使用するかどうかを指定します。

説明
YESピクセルの境界が整列されていないレイヤを描画する時にアンチエイリアシングを使用します。
このオプションは、シミュレータで洗練された描画を可能にしますが、パフォーマンスに顕著な
影響を与える可能性があります。 
NO(デフォルト)
アンチエイリアシングを使用しません。

このキーはiOS 3.0以降でサポートされています。



UIViewGroupOpacity


UIViewGroupOpacity(ブール値/iOS)は、Core Animationのサブレイヤがスーパーレイヤの不透明度を継承するかどうかを指定します。

説明
YESスーパーレイヤの不透明度を継承します。
このオプションは、シミュレータで洗練された描画を可能にしますが、パフォーマンスに顕著な
影響を与える可能性があります。 
NO(デフォルト)
スーパーレイヤの不透明度を継承しません。

このキーはiOS 3.0以降でサポートされています。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(10)~UIKitキー(1)

2012. 03. 26
UIKitキー

UIKitフレームワークはiOSアプリケーションを生成するために必要なインフラストラクチャを提供します。

このフレームワークに関連付けられたキーは、アプリケーションの起動時に一度実行され、外観を設定に使用されます。

UIKitキーは、他のキーと識別するために接頭辞UIを使用しています。

iOSアプリケーションの生成と構成をするためにUIKitを使用する方法の詳細については『iOSアプリケーションプログラミングガイド』を参照してください。



キーの概要


表1にUIKitキーと、Xcodeプロパティリストエディタでの対応するキー名、各キーの高レベルの説明、そして使用できるプラットフォームを、キーのアルファベット順で一覧に示します。

各キーの詳細については以降の節で説明します。

表1 UIKitキーの概要

キーXcode名概要対応
OS
UIAppFonts"Fonts
provided by
application”
アプリケーション固有のフォントのリストを指定
します。
詳細は『UIAppFonts』参照。
iOS
3.2
以降
UIApplicationExits
OnSuspend
"Application
does not
run in
background”
アプリケーションがバックグラウンドで実行する
代わりに終了するかどうかを指定します。
詳細は『UIApplicationExitsOnSuspend』参照。
iOS
4.0
以降
UIBackgroundModes"Required
background
modes”
アプリケーションがバックグラウンドでの実行を
継続する必要があるかどうかを指定します。
詳細は『UIBackgroundModes』参照。
iOS
4.0
以降
UIDeviceFamily"Targeted
device
family”
アプリケーションのターゲットデバイスの定義は、
Xcodeによって自動的に挿入されます。
詳細は『UIDeviceFamily』参照。
iOS
3.2
以降
UIFileSharingEnabled"Application
supports
iTunes file
sharing”
アプリケーションがiTunesを介してユーザの
コンピュータとファイルを共有するかどうかを
指定します。
詳細は『UIFileSharingEnabled』参照。
iOS
3.2
以降
UIInterfaceOrientation“Initial
interface
orientation”
アプリケーションのユーザインターフェイスの初期
方向を指定します。
詳細は『UIInterfaceOrientation』参照。
iOS
UILaunchImageFile"Launch
image”
アプリケーションの起動画像名を指定します。
詳細は『UILaunchImageFile』参照。
iOS
3.2
以降
UIMainStoryboardFileNoneアプリケーションのストーリーボードリソース
ファイル名を指定します。
詳細は『UIMainStoryboardFile』参照。
iOS
5.0
以降
UINewsstandAppNoneアプリケーションがNewsstandにコンテンツを表示
するかどうかを指定します。
詳細は『UINewsstandApp』参照。
iOS
5.0
以降
UIPrerenderedIcon"Icon already
includes
gloss effects”
アプリケーションのアイコンに既に光沢効果が
含まれているかどうかを指定します。
詳細は『UIPrerenderedIcon』参照。
iOS
UIRequiredDevice
Capabilities
"Required
device
capabilities”
アプリケーションを実行するために必要なデバイス
関連の機能を指定します。
詳細は『UIRequiredDeviceCapabilities』参照。
iOS
3.0
以降
UIRequiresPersistent
WiFi
"Application
uses Wi-Fi”
このアプリケーションがWi-Fi接続を必要とするか
どうかを指定します。
詳細は『UIRequiresPersistentWiFi』参照。
iOS
UIStatusBarHidden"Status bar
is initially
hidden”
アプリケーション起動時にステータスバーを最初に
非表示にするかどうかを指定します。
詳細は『UIStatusBarHidden』参照。
iOS
UIStatusBarStyle"Status bar
style”
アプリケーション起動時のステータスバーの
スタイルを指定します。
詳細は『UIStatusBarStyle』参照。
iOS
UISupportedExternal
AccessoryProtocols
"Supported
external
accessory
protocols”
アタッチしているハードウェアアクセサリとの通信
をサポートしている通信プロトコルを指定します。
詳細は『UISupportedExternalAccessory
Protocols
』参照。
iOS
3.0
以降
UISupportedInterface
Orientations
"Supported
interface
orientations”
アプリケーションがサポートしている方向を指定
します。
詳細は『UISupportedInterfaceOrientations
参照。
iOS
3.2
以降
UIViewEdge
Antialiasing
"Renders
with edge
antialiasing”
描画でピクセル境界に整列していない場合に、
Core Animationレイヤがアンチエイリアシングを
使用するかどうかを指定します。
詳細は『UIViewEdgeAntialiasing』参照。
iOS
3.0
以降
UIViewGroupOpacity"Renders
with group
opacity”
Core Animationレイヤがスーパーレイヤの不透明
度を継承するかどうかを指定します。
詳細は『UIViewGroupOpacity』参照。
iOS
3.0
以降



UIAppFonts


UIAppFonts(配列/iOS)は、アプリケーションが提供するフォントを通常のメカニズムを介して使用できるように指定します。

配列内の各アイテムは、アプリケーションのバンドル内に位置する(ファイル名拡張子を含む)フォントファイル名を格納する文字列です。

アプリケーションが実行される時、システムは指定されたフォントを読み込み、アプリケーションが使用できるようにします。

このキーはiOS 3.2以降でサポートされています。



UIApplicationExitsOnSuspend


UIApplicationExitsOnSuspend(ブール値/iOS)は、アプリケーションをやめる時に、バックグラウンドに移行するのではなく、終了する必要があることを指定します。

iOS SDK 4.0以降でリンクされているアプリケーションはこのキーを含めることができ、アプリケーションが一時停止され、自動的にバックグラウンドで実行されることを防ぐため、値がYESに設定されます。

このキーの値がYESの場合、アプリケーションはバックグラウンドに移行する代わりに、メモリから解放されて終了します。

このキーが存在しないかNOに設定されている場合、アプリケーションは通常通りバックグラウンドへ移行します。

このキーはiOS 4.0以降でサポートされています。



UIBackgroundModes


UIBackgroundModes(配列/iOS)は、アプリケーションが特定のバックグラウンドサービスを提供し、バックグラウンドでの継続実行を許可する必要があることを指定します。

これらのキーは慎重に使用し、指定されたサービスを提供するアプリケーションでのみにする必要があります。

バックグラウンドで実行するという選択肢が存在する場合は、それらの選択肢を代わりに使用する必要があります。

例えば、バックグラウンドに位置アプリケーションを登録する代わりに、アプリケーションが位置イベントを受信するために大幅な位置変更インターフェイスを使用することができます。

表2に、このキーに関連付けられた配列に格納することができる、有効な文字列値を示します。

これらの、または全ての文字列を含めることができますが、アプリケーションが指定されたサービスを提供する必要があります。

表2 UIBackgroundModes配列の値

説明
audioアプリケーションはバックグラウンドで音声コンテンツを再生します。
locationアプリケーションはユーザに位置ベースの情報を提供し、この機能を実装
するために(大幅な変更の位置サービスとは対照的に)標準的な位置サービス
の使用を要求します。
voipアプリケーションはVoice-over-IPサービスを提供します。
このキーを使用したアプリケーションは、アプリケーションがVoIPサービス
を再確立できるように、システム起動後に自動的に起動されます。
またこのキーを使用したアプリケーションは、バックグラウンドオーディオ
の再生を許可します。
newsstand-contentアプリケーションは、ユーザが望んだ時にコンテンツが準備されているように、
Newsstand Kitフレームワークを使用してバックグラウンドで最近ダウンロード
されたコンテンツを処理します。
この値はiOS 5.0以降でサポートされています。
external-accessoryアプリケーションは定期的にデータを配信するアクセサリと通信します。
この値はiOS 5.0以降でサポートされています。
bluetooth-centralアプリケーションはバックグラウンドでBluetoothアクセサリとの通信に、
CoreBluetoothフレームワークを使用します。
この値はiOS 5.0以降でサポートされています。

このキーはiOS 4.0以降でサポートされています。



UIDeviceFamily


UIDeviceFamily(数値または配列/iOS)は、このアプリケーションが実行するように設定されている、基盤となるハードウェアタイプを指定します。

重要:このキーを手動でInfo.plistファイルに挿入しないでください。
Xcodeがビルド設定のTargeted Device Familyの値に基づいて自動的に挿入します。
このキーの値を変更するにはビルド設定を使用する必要があります。

このキーの値は通常整数ですが、整数の配列にすることもできます。

表3に使用することができる有効な整数値と対応するデバイスを示します。

表3 UIDeviceFamilyキーの値

説明
1(デフォルト)
iPhoneとiPod touchデバイス上で実行するアプリケーションです。
2iPadデバイス上で実行するアプリケーションです。

このキーはiOS 3.2以降でサポートされています。



UIFileSharingEnabled


UIFileSharingEnabled(ブール値/iOS)は、アプリケーションがiTunesを介してファイルを共有するかどうかを指定します。

このキーがYESの場合、アプリケーションはファイルを共有します。

このキーが存在しないかNOの場合、アプリケーションはファイルを共有しません。

アプリケーションは、アプリケーションのホームディレクトリへのパスを<Application_Home>とすると、<Application_Home>/Documentsディレクトリ内にユーザと共有したいファイルを置く必要があります。

ユーザはiTunesで、選択されたデバイスのAppsタブのFile Sharing項から、アプリケーションの共有ファイルにアクセスすることができます。

このタブで、ユーザはディレクトリからファイルの追加や削除を行うことができます。

このキーはiOS 3.2以降でサポートされています。



UIInterfaceOrientation


UIInterfaceOrientation(文字列/iOS)は、アプリケーションのユーザインターフェイスの初期方向を指定します。

この値は、UIApplication.hヘッダファイルで宣言されているUIInterfaceOrientation定数に基づいています。

デフォルトの向きはUIInterfaceOrientationPortraitです。



UILaunchImageFile


UILaunchImageFile(文字列/iOS)は、アプリケーションの起動画像ファイル名を指定します。

このキーが指定されていない場合、システムはDefault.pngの名前を想定します。

このキーは通常、iPadとiPhoneまたはiPos touchデバイスで異なる起動画面を設定する必要がある、ユニバーサルアプリケーションで使用されます。

Info.plistファイルにこのキーを含める場合、アプリケーションのバンドルに含める起動画像は文字列に基づいている必要があります。

例えば、基本名MyiPadImage.pngを使用して、iPad用の起動画像としてポートレートとランドスケープに対応すると仮定します。

その場合、Info.plistファイルにUILaunchImageFile~ipadキーを含めて、MyiPadImage.pngと値を設定します。

そして指定された方向に対応する起動画像、MyiPadImage-Portrait.pngファイルとMyiPadImage-Landscape.pngファイルをバンドル内に格納します。

このキーはiOS 3.2以降でサポートされています。



UIMainStoryboardFile


UIMainStoryboardFile(文字列/iOS)は、アプリケーションの(.storyboard拡張子を除く)メインストーリーボードファイル名の文字列を格納します。

ストーリーボードファイルはアプリケーションのビューコントローラを含むInterface Builderのアーカイブで、ビューコントローラと直接の関連があるビュー間、および連携するビューコントローラ間を接続します。

このキーが存在する場合、メインストーリーボードファイルは起動時に自動的に読み込まれ、アプリケーションのウィンドウに初期ビューコントローラがインストールされます。

このキーはNSMainNibFileキーと相互に排他的です。

Info.plistファイルには両方ではなく、どちらかのキーを含める必要があります。

このキーはiOS 5.0以降でサポートされています。



UINewsstandApp


UINewsstandApp(ブール値/iOS)は、アプリケーションがNewsstandでコンテンツを表示するかどうかを指定します。

新聞や雑誌のコンテンツの出版社は、新しい発行物のダウンロードを処理するために、Newsstand Kitフレームワークを使用します。

アプリケーションはそれらをユーザのホーム画面に表す代わりに、Newsstandを介して収集と表示を行います。

このキーは、そのように表示する必要があるアプリケーションを識別します。

またアプリケーションは『UINewsstandIcon辞書のコンテンツ』で説明したように、デフォルトのNewsstandアイコンを提供する必要があります。

このキーはiOS 5.0以降でサポートされています。



UIPrerenderedIcon


UIPrerenderedIcon(ブール値/iOS)は、アプリケーションのアイコンに既に光沢効果が含まれているかどうかを指定します。

アイコンが既にこの効果が施されている場合、システムが同じ効果を再度追加するのを防ぐために、このキーをYESに設定する必要があります。

全てのアイコンはこのキーの値に関係無く、自動的に角が丸められます。

説明
YESiOSはアプリケーションアイコンに光沢効果を適用しません。
NO(デフォルト)
iOSはアプリケーションアイコンに光沢効果を適用します。



UIRequiredDeviceCapabilities


UIRequiredDeviceCapabilities(配列または辞書/iOS)は、アプリケーションが実行するために必要なデバイス関連の機能を、iTunesとApp Storeに知らせます。

iTunesとモバイルApp Storeは、アプリケーションをインストールする際に、デバイス上でサポートされない機能を顧客に提示するために、このリストを使用します。

配列を使用する場合、与えたキーが存在すると、対応する機能が必要であることを示します。

辞書を使用する場合、各キーのブール値を指定する必要があります。

このキーの値がtrueの場合、機能が必要になります。

このキーの値がfalseの場合、その機能がデバイス上に存在してはいけません。

両方の場合でもキーを省略すると機能が要求されないことを示しますが、機能が存在する場合、アプリケーションは実行することができます。

表4に、UIRequiredDeviceCapabilitiesキーに関連付けられている配列または辞書に含めることができるキーを示します。

アプリケーションで絶対に必要な機能のみ、キーを含める必要があります。

アプリケーションが、これらの機能を使用するコードパスを避けることによって、欠けている機能を収容することができる場合は、対応するキーが含まれません。

表4 UIRequiredDeviceCapabilitiesキー用の辞書のキー

キー説明
telephonyアプリケーションがPhoneアプリケーションの存在が必要な(または明確に禁止
する)場合、このキーを含めます。
アプリケーションがtelスキームでURLを開く場合、この機能が必要な場合があり
ます。
wifiアプリケーションがデバイスのネットワーク機能へのアクセスが必要な(または
明確に禁止する)場合、このキーを含めます。
smsアプリケーションがMessagesアプリケーションの存在が必要な(または明確に
禁止する)場合、このキーを含めます。
アプリケーションがsmsスキームでURLを開く場合、この機能が必要な場合が
あります。
still-cameraアプリケーションがデバイス上でカメラの存在が必要な(または明確に禁止
する)場合、このキーを含めます。
アプリケーションはデバイスのスチルカメラで画像をキャプチャする際に、
UIImagePickerControllerインターフェイスを使用します。
auto-focus-cameraアプリケーションがデバイスのスチルカメラのオートフォーカス機能が必要な
(または明確に禁止する)場合、このキーを含めます。
ほとんどの開発者はこのキーを含める必要はありませんが、アプリケーションが
マクロ撮影のサポートやシャープな画像が必要など、いくつかの画像処理を行う
ために必要な場合があります。
front-facing-cameraアプリケーションが前面カメラの存在が必要な(または明確に禁止する)場合、
このキーを含めます。
アプリケーションはデバイスのカメラでビデオをキャプチャする際に、
UIImagePickerControllerインターフェイスを使用します。 
camera-flashアプリケーションが写真やビデオを撮影する際に、カメラのフラッシュの存在が
必要な(または明確に禁止する)場合、このキーを含めます。
アプリケーションはこの機能の有効化を制御するために、
UIImagePickerControllerインターフェイスを使用します。
video-cameraアプリケーションがデバイス上のビデオ機能でカメラの存在が必要な(または
明確に禁止する)場合、このキーを含めます。
アプリケーションはデバイスのカメラでビデオをキャプチャするために、
UIImagePickerControllerインターフェイスを使用します。
accelerometerアプリケーションがデバイス上の加速度センサの存在が必要な(または明確に
禁止する)場合、このキーを含めます。
アプリケーションは加速度センサイベントを受信するために、Core Motion
フレームワークのクラスを使用します。
アプリケーションがデバイス方向の変化のみを検出する場合は、このキーを
含める必要はありません。 
gyroscopeアプリケーションがデバイス上のジャイロスコープの存在が必要な(または明確
に禁止する)場合、このキーを含めます。
アプリケーションはジャイロスコープハードウェアから情報を受信するために、
 Core Motionフレームワークを使用します。
location-servicesアプリケーションがCore Locationフレームワークを使用して、デバイスの現在
位置を取得する機能が必要な(または明確に禁止する)場合、このキーを含め
ます。
(このキーは一般的な位置サービス機能を指します。明確にGPSレベルの精度が
必要な場合は、gpsキーを含める必要があります。) 
gpsアプリケーションが位置の追跡する場合に高精度のGPS(またはAGPS)ハード
ウェアの存在が必要な(または明確に禁止する)場合、このキーを含めます。
このキーを含める場合、location-servicesキーも含める必要があります。
アプリケーションが携帯電話またはWi-fi無線などよりも精密な位置データが
必要な場合のみ、GPSを要求する必要があります。 
magnetometerアプリケーションがコンパスハードウェアの存在が必要な(または明確に禁止
する)場合、このキーを含めます。
アプリケーションはCore Locationフレームワークを介して方位イベントを受信
するために、このハードウェアを使用します。 
gamekitアプリケーションが(iOS 4.1以降で)Game Centerが必要な(または明確に
禁止する)場合、このキーを含めます。
microphoneアプリケーションが内蔵マイクを使用、またはマイクを提供するアクセサリを
サポートする場合は、このキーを含めます。
opengles-1アプリケーションがOpenGL 1.1インターフェイスの存在が必要な(または明確
に禁止する)場合、このキーを含めます。
opengles-2アプリケーションがOpenGL 2.0インターフェイスの存在が必要な(または明確
に禁止する)場合、このキーを含めます。
armv6アプリケーションがarmv6命令セット用のみにコンパイルされている場合、この
キーを含めます。
(iOS v3.1以降) 
armv7アプリケーションがarmv7命令セット用のみにコンパイルされている場合、この
キーを含めます。
(iOS v3.1以降)
peer-peerアプリケーションがBluetooth経由によるピアツーピア接続が必要な(または明確
に禁止する)場合、このキーを含めます。
(iOS v3.1以降) 
bluetooth-leアプリケーションがデバイス上のBluetooth低エネルギーハードウェアの存在が
必要な(または明確に禁止する)場合、このキーを含めます。
(iOS v5以降) 

このキーはiOS 3.0以降でサポートされています。



UIRequiresPersistentWiFi


UIRequiresPersistentWiFi(ブール値/iOS)は、アプリケーションがWi-Fi接続を必要とするかどうかを指定します。

iOSはアプリケーションの実行中、開いているアクティブなWi-Fi接続を維持します。

説明
YESアプリケーション起動時にiOSはWi-Fi接続を開き、アプリケーションが実行している間は
開いたままにします。
Wi-Fiベースのアプリケーションで使用します。
NO(デフォルト)
iOSはアクティブなWi-Fi接続を30分後に閉じます。

:iPadがプッシュ通知を使用して、その後スリープになるアプリケーションを含んでいる場合、携帯電話サービスが利用できないか圏外の場合は、デバイスのアクティブなWiFi接続は自動的に現在のアクセスポイントに関連付けられたままになります。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(9)~Mac OS Xキー

2012. 03. 25
Mac OS Xキー

この章のキーは、Mac OS Xのバンドルに関連する各種機能を定義します。



キーの概要


表1にMac OS Xキーと、Xcodeのプロパティリストエディタでの対応するキー名、各キーの高レベルの説明、そして使用できるプラットフォームを、キーのアルファベット順で一覧に示します。

各キーの詳細については以降の節で説明します。

表1 Mac OS Xキーの概要

キーXcode名概要対応OS
APInstallerURL"Installation
directory base
file URL”
インストールするファイルへのURLベースの
パスです。
詳細は『APInstallerURL』参照。
Mac OS X
APFiles"Installation
files”
インストールすることができるファイルまたは
ディレクトリを記述した辞書の配列です。
詳細は『APFiles』参照。
Mac OS X
ATSApplicationFonts
Path
"Application
fonts resource
path”
バンドルのリソースディレクトリにある単一の
フォントファイルまたはフォントファイルの
ディレクとへのパスです。
詳細は『ATSApplicationFontsPath』参照。
Mac OS X
CSResourcesFile
Mapped
"Resources
should be
file-mapped”
trueの場合、Core Servicesルーチンはバンドル
のリソースファイルを読み込む代わりにメモリ
にマップします。
詳細は『CSResourcesFileMapped』参照。
Mac OS X
QuartzGLEnableNoneアプリケーションがQuartz GLを使用するか
どうかを指定します。
詳細は『QuartzGLEnable』参照。
Mac OS X
10.5以降



APInstallerURL


APInstallerURL(文字列/Mac OS X)は、インストールするファイルへのベースパスを識別します。

このパスはfile://localhost/path/という形式で指定する必要があります。

全てのインストールされるファイルは、このディレクと内に存在する必要があります。



APFiles


APFiles(配列/Mac OS X)は、インストールするファイルまたはディレクトリを指定します。

内容にインストールするファイルまたはディレクトリに関する情報を含めるには、辞書としてこのキーを指定します。

複数のアイテムを指定するにはディレクトリ内のファイルの指定にAPFilesキー自身を中にネストします。

表2に単一ファイルまたは辞書に関する情報を指定するためのキーを示します。

表2 APFiles辞書のキー

キーXcode名説明プラット
フォーム
APFileDescriptionKey"Install file
description
text”
文字列Finderの情報ウィンドウに表示する
項目の短い説明です。
Mac OS X
APDisplayedAsContainer"Display
with folder
icon”
文字列項目が『Yes』の場合、情報パネル
のフォルダアイコンが表示され、
それ以外の場合はドキュメント
アイコンが表示されます。
Mac OS X
APFileDestinationPath"File
destination
path”
文字列アプリケーションバンドルへの相対
パスとして、コンポーネントを
インストールする場所です。
Mac OS X
APFileName"Install file
name”
文字列ファイルまたはディレクトリの名前
です。
Mac OS X
APFileSourcePath"Install file
source path”
文字列APInstallerURLパスからのアプリケー
ションパッケージ内のコンポーネント
へのパスです。
Mac OS X
APInstallAction"File install
action”
文字列コンポーネントを使用して実行する
アクション(『Copy』または
『Open』)です。
Mac OS X



ATSApplicationFontsPath


ATSApplicationFontsPath(文字列/Mac OS X)は、バンドルのResourcesディレクトリ内にあるフォントファイルまたはフォントのディレクトリの場所を識別します。

存在する場合、Mac OS Xはバンドルされたアプリケーションで使用するために、指定されたパスのフォントをアクティブにします。

フォントはバンドルされたアプリケーションでのみアクティブになり、システム全体に対してではありません。

パスはバンドルのResourcesディレクトリの相対ディレクトリとして指定する必要があります。

例えばフォントのディレクトリのパスが/Applications/MyApp.app/Contents/Resources/Stuff/MyFonts/の場合、このキーの値は文字列Stuff/MyFonts/を指定することになります。



CSResourcesFileMapped


CSResourcesFileMapped(ブール値/Mac OS X)は、このアプリケーションのリソースファイルをメモリにマップするかどうかを指定します。

それ以外の場合、通常はメモリに読み込まれます。

ファイルマッピングは、数が少ない少ないリソースに頻繁にアクセスする状況で、パフォーマンスを向上させることができます。

ただしリソースはメモリに読み込みのみでマップされるため、変更することはできません。



QuartzGLEnable


QuartzGLEnable(ブール値/Mac OS X)は、アプリケーションがQuartz GLを使用するかどうかを指定します。

説明
trueアプリケーションのウィンドウはQuartz GLをオンにします。
(コンピュータのRAMが少なくとも1GMの場合にのみ動作します)
falseQuartz GLを無効にします。
[<NSWindow> setPreferredBackingLocation:]を使用した後、Quartz GLは使用できなく
なります。

Quartz GLは複数のビデオカードがインストールされているコンピュータ上ではサポートされていません。

テストのためにQuartz GLをオンにするには、<Xcode>/ApplicationsにあるQuartz Debugアプリケーションを使用してください。

このキーはMac OS X v10.5以降で使用することができます。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(8)~Cocoaキー(2)

2012. 03. 24
NSSupportsAutomaticTermination

NSSupportsAutomaticTermination(ブール値/Mac OS X)。

このキーは、Mac OS X 10.7以降でアプリケーションが自動終了をサポートしているかどうかを示すブール値です。

自動終了は、一定条件でシステムによって自動的な終了が実行されるアプリケーションを可能にします。

主に不可視な、または可視ウィンドウを持たず、現在使用されていない場合に、アプリケーションを終了することができます。

システムはアプリケーションによって使用されているメモリを解放するために、アプリケーションを終了させます。

アプリケーションは、NSProcessInfodisableAutomaticTerminationenableAutomaticTerminationメソッドを使用して、自動終了のサポートをプログラムで無効や再有効にすることができます。

アプリケーションは重要な操作中に終了されることを防ぐために、これを行う可能性があります。



NSSupportsSuddenTermination

NSSupportsSuddenTermination(ブール値/Mac OS X)。

このキーは、システムがログアウトまたはより迅速にシャットダウンするために、完全にアプリケーションを終了するかどうかを示すブール値を格納します。

アプリケーションが起動直後に終了することができるかどうかを指定しするには、このキーを使用します。

アプリケーションは、NSProcessInfoクラスのメソッドを使用して、実行時に不意な終了を有効または無効にすることができます。

このキーのデフォルト値はNOです。



NSUbiquitousDisplaySet

NSUbiquitousDisplaySet(文字列/iOS、Mac OS X)は、アプリケーションのストレージを管理するための、iTunesConnectで設定された識別文字列を格納します。

割り当てられた表示セットは、(ユーザのモバイルアカウントの)モバイルデータフォルダからアプリケーションがデータファイルを取得して決定されます。

複数のアプリケーションを生成する場合、アプリケーションに同じ表示セットを使用するか、それぞれに異なる表示セットを割り当てることができます。

例えばアプリケーションの軽量バージョンを生成する場合、フル機能バージョンに対して基本的に同じデータファイルを生成して使用するので、両方のバージョンで同じ表示セットを使用する場合があります。

各アプリケーションは、モバイルデータフォルダに格納されているファイル型を認識し、それらを開くことができる必要があります。



UTExportedTypeDeclarations

UIExportedTypeDeclarations(配列/iOS、Mac OS X)は、アプリケーションが所有し、エクスポートされる統一型識別子(UTI:uniform type identifier)を宣言します。

アプリケーションのカスタムデータフォーマットの宣言し、それらをUTIに関連付けるには、このキーを使用します。

UTIのリストのエクスポートは、カスタムファイル型の登録には良い方法ですが、Launch ServicesはMac OS v10.5以降でのみ、このキーと値を認識します。

このキーはMac OS X v10.5より前のバージョンでは無視されます。

UTExportedTypeDeclarationsキーの値は、辞書の配列です。

各辞書には、型宣言の属性を識別するキーと値のペアのセットが格納されています。

表4に、辞書に格納することができるキーと代表的な値を示します。

また、これらのキーは『UTImportedTypeDeclarations』キーに関連付けられている辞書の配列に格納することもできます。

表4 UTIプロパティリストキー

キーXcode名説明プラット
フォーム
UTTypeConformsTo"Conforms to
UTIs”
配列(必須)
文字列の配列を格納します。
各文字列は、この型が適合するUTIを
識別します。
これらのキーは、カスタムファイル
フォーマットが属する親カテゴリを
表します。
例えば、JPEGファイル型はpublic.
imageとpublic.data型に属します。
高レベルな型の一覧については
Uniform Type Identifiers
Overview
』を参照してください。
iOS,
Mac OS X
UTTypeDescription"Description”文字列ユーザが読める、この型の説明です。
このキーに関連付けられた文字列は、
バンドルのInfoPlist.stringsファイル
でローカライズされる可能性があり
ます。
iOS,
Mac OS X
UTTypeIconFile"Icon file
name”
文字列このUTIに関連付ける、バンドル
アイコンリソース名です。
アプリケーションがエクスポートする
型のためにのみ、このキーを含める
必要があります。
このファイルは.icnsファイル名拡張子
を持つ必要があります。
Xcodeツールに付属しているIcon
Composerアプリケーションを使用
して、このファイルを生成することが
できます。
Mac OS X
UTTypeIdentifier"Identifier”文字列(必須)
型に割り当てるUTIです。
この文字列は一般的に最も重要で、
逆DNSフォーマットを使用します。
例えば貴方の会社のカスタムフォー
マットは、com.<yourcompany>.
<type>.<subtype>という形式に
なります。 
iOS,
Mac OS X
UTTypeReferenceURL"Reference
URL”
文字列この型を説明するリファレンスドキュ
メントのURLです。
Mac OS X
UTTypeSize64IconFileNone文字列このUTIに関連付けられている、
(アプリケーションのバンドル内に
ある)64 x 64ピクセルのアイコン
リソースファイル名です。
このキーは、アプリケーションの
エクスポートの型のみに含める必要が
あります。
iOS
UTTypeSize320IconFileNone文字列このUTIに関連付けられている、
(アプリケーションのバンドル内に
ある)320 x 320ピクセルのアイコン
リソースファイル名です。
このキーは、アプリケーションの
エクスポートの型のみに含める必要が
あります。
iOS
UTTypeTagSpecification"Equivalent
Types”
辞書(必須)
1つ以上の同等の型識別子を定義する
辞書です。
この辞書に記載されるキーと値のペア
は、この型に対応するファイル名
拡張子、MIMEタイプ、OSType
コード、そしてペーストボードタイプ
を識別します。
例えばファイル名拡張子を指定する
には、キーpublic.filename-
extensionと、実際の拡張子を含む
文字列の配列を関連付けます。
この辞書のキーについての詳細は
Uniform Type Identifiers
Overview
』を参照してください。
iOS,
Mac OS X

Mac OS XとiOSでのアイコンファイルを指定する方法は、各プラットフォームでサポートしているファイルフォーマットによって異なっています。

iOSでは、各アイコンリソースファイルは、通常1つの画像のみを含むPNGファイルです。

したがって、異なるアイコンサイズのためには、異なる画像ファイルを指定する必要があります。

しかしMac OS Xでアイコンを指定する場合は、いくつかの解像度の異なるアイコンを格納することができる(拡張子.icnsの)アイコンファイルを使用します。

このキーは、iOS 3.2以降とMac OS X 10.5以降でサポートされています。

UTIとその使用方法についての詳細は『Uniform Type Identifiers Overview』を参照してください。



UTImportedTypeDeclarations

UTImportedTypeDeclarations(配列/iOS、Mac OS X)は、本質的にアプリケーションによってサポートされる(が所有はしない)統一型識別子(UTI:uniform type identifier)を宣言します。

このキーは、アプリケーションが認識するサポートされている型を宣言に使用され、それらを所有するアプリケーションが存在するかどうかに関わらず、Launch Servicesによる認識を保証します。

例えば、他の会社が定義したファイルフォーマットをこのキーを使用して指定し、プログラムで読み込みやエクスポートをすることができます。

このキーの値は辞書の配列で、『UTExportedTypeDeclarations』キーと同じキーを使用しています。

これらのキーの一覧は表4を参照してください。

このキーは、iOS 3.2以降とMac OS X 10.5以降でサポートされています。

UTIとその使用方法についての詳細は『Uniform Type Identifiers Overview』を参照してください。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(7)~Cocoaキー(1)

2012. 03. 23
Cocoaキー

CocoaとCocoa Touchは、Mac OS XとiOSのそれぞれで実行されるObjective-Cベースのアプリケーションの定義に使用される環境です。

Cocoa環境に関連付けられたキーは、Interface Builderのnibファイルと、バンドルによって提供される他のユーザ向け機能のサポートを提供します。

Cocoaキーは、他のキーと識別するために接頭辞NSを使用しています。

iOS向けCocoa Touchアプリケーションの開発についての詳細については『iOSアプリケーションプログラミングガイド』を参照してください。

Mac OS X向けCocoaアプリケーションの開発についての詳細については『Cocoa Fundamentals Guide』を参照してください。



キーの概要

表1にCocoaキーと、Xcodeのプロパティリストエディタでの対応するキー名、各キーの高レベルの説明、そして使用できるプラットフォームを、キーのアルファベット順で一覧に示します。

各キーの詳細については以降の項で説明します。

表1 Cocoaキーの概要

キーXcode名概要対応OS
NSAppleScriptEnabled"Scriptable”AppleScriptが有効かどうかを指定します。
詳細は『NSAppleScriptEnabled』参照。
Mac OS X
NSDockTilePlugIn"Dock Tile
Plugin path”
存在する場合、アプリケーションのDock
タイルプラグイン名を指定します。
詳細は『NSDockTilePlugIn』参照。
Mac OS X
NSHumanReadable
Copyright
"Copyright
(human-
readable)”
(ローカライズ可能)
バンドルの著作権表示を指定します。
詳細は『NSHumanReadableCopyright
参照。
Mac OS X
NSJavaNeeded"Cocoa Java
application”
プログラムがJava VMの実行を必要とする
かどうかを指定します。
詳細は『NSJavaNeeded』参照。
Mac OS X
NSJavaPath"Java classpaths”NSJavaRootで始まる要素のクラスへの
パスの配列です。
詳細は『NSJavaPath』参照。
Mac OS X
NSJavaRoot"Java root
directory”
Javaクラスを格納するルート
ディレクトリ。
詳細は『NSJavaRoot』参照。
Mac OS X
NSMainNibFile"Main nib file
base name”
アプリケーションのメインnibファイル名。
詳細は『NSMainNibFile』参照。
iOS,
Mac OS X
NSPersistentStore
TypeKey
"Core Data
persistent store
type”
永続ドキュメント型に関連付けられた
Core Dataの永続ストアの型。
詳細は『NSPersistentStoreTypeKey
参照。
Mac OS X
NSPrefPaneIconFile"Preference
Pane icon file”
システム環境設定アプリケーションでの
設定ペインの表示に使用される画像
ファイルリソース名。
詳細は『NSPrefPaneIconFile』参照。
Mac OS X
NSPrefPaneIconLabel"Preference
Pane icon label”
システム環境設定アプリケーションでの
設定ペインアイコンの下方に表示される、
設定ペイン名。
詳細は『NSPrefPaneIconLabel』参照。
Mac OS X
NSPrincipalClass"Principal class”バンドルのメインクラス名。
詳細は『NSPrincipalClass』参照。
Mac OS X
NSServices"Services”アプリケーションによって提供される
サービスを指定する辞書の配列。
詳細は『NSServices』参照。
Mac OS X
NSSupportsAutomatic
Termination
Noneアプリケーションがメモリを再利用する
ために解放するかどうかを指定します。
詳細は『NSSupportsAutomatic
Termination
』参照。
Mac OS X
10.7以降
NSSupportsSudden
Termination
Noneアプリケーションが高速にシャットダウン
またはログアウト操作を行うかどうかを
指定します。
詳細は『NSSupportsSudden
Termination
』参照。
Mac OS X
NSUbiquitousDisplay
Set
Noneアプリケーションが表示できるモバイル
ドキュメントデータを指定します。
詳細は『NSUbiquitousDisplaySet』参照。
iOS,
Mac OS X
UTExportedType
Declarations
“Exported Type
UTIs”
アプリケーションでサポート(と所有)
されているUTIベースタイプを指定する
辞書の配列。
詳細は『UTExportedTypeDeclarations
参照。
iOS 5.0
以降,
Mac OS X
10.7以降
UTImportedType
Declarations
"Imported Type
UTIs”
アプリケーションでサポートされている
(が所有していない)UTIベースタイプを
指定する辞書の配列。
詳細は『UTImportedTypeDeclarations
参照。
iOS,
Mac OS X



NSAppleScriptEnabled

NSAppleScriptEnabled(ブール値または文字列/Mac OS X)。

このキーは、アプリケーションがスクリプト可能であるかどうかを識別します。

アプリケーションがAppleScriptをサポートする場合は、このキーの値を(ブール型の時は)trueまたは(文字列型の時は)YESに設定します。



NSDockTilePlugIn

NSDockTilePlugIn(文字列/Mac OS X)。

このキーは、アプリケーションのContents/PlugIns辞書内にある、.docktilepluginファイル名拡張子を持つプラグインバンドル名を格納します。

バンドルは、アプリケーションのDockタイルプラグインを含める必要があります。

Dockタイルプラグインの生成についての詳細は『Dock Tile Programming Guide』を参照してください。



NSHumanReadableCopyright

NSHumanReadableCopyright(文字列/Mac OS X)。

このキーは『c 2008, My Company』など、バンドルの著作権表示の文字列を格納します。

この文字列を読み込み、Aboutダイアログボックスに表示することができます。

このキーは、InfoPlist.stringsファイルに含めることによってローカライズすることができます。

このキーは、廃止されたCFBundleGetInfoStringキーを置換します。



NSJavaNeeded

NSJavaNeeded(ブール値または文字列/Mac OS X)。

このキーは、Java VMを読み込み、バンドルコードの実行前に開始する必要があるかどうかを指定します。

このキーは、Java環境の起動をシステムに伝えるCocoa Javaアプリケーションでのみ必要になります。

純粋なJavaアプリケーションを作成する場合は、このキーは含まれません。

また必要であれば、ブール値の代わりに文字列型の値『YES』を指定することもできます。

Mac OS X v10.5では非推奨です。



NSJavaPath

NSJavaPath(配列/Mac OS X)。

このキーはパスの配列を格納します。

各パスはJavaクラスを差しています。

パスは絶対パス、または『NSJavaRoot』キーによって指定された場所からの相対パスのどちらでも構いません。

開発環境(または具体的なjamfiles)は自動的に配列の値を保持します。

Mac OS X v10.5では非推奨です。



NSJavaRoot

NSJavaRoot(文字列/Mac OS X)。

このキーはディレクトリを識別する文字列を格納します。

このディレクトリは、アプリケーションのJavaクラスファイルのルートディレクトリを表します。



NSMainNibFile

NSMainNibFile(文字列/iOS、Mac OS X)。

このキーは、アプリケーションの(.nib拡張子を除く)メインnibファイル名の文字列を格納します。

nibファイルは、インターフェイスのオブジェクト間の接続と共に、ユーザインターフェイスの記述を含む、Interface Builderのアーカイブです。

メインnibファイルは、アプリケーションの起動時に自動的に読み込まれます。

このキーは『UIMainStoryboardFile』キーと相互に排他的です。

Info.plistファイルには両方ではなく、どちらかを含める必要があります。



NSPersistentStoreTypeKey

NSPersistentSroreTypeKey(文字列/Mac OS X)。

このキーは、ドキュメントタイプ(『CFBundleDocumentTypes』参照)に関連付けられているCore Data永続ストアの型を指定する、文字列を格納します。



NSPrefPaneIconFile

NSPrefPaneIconFile(文字列/Mac OS X)。

このキーは、設定ペインのアイコンを含む(拡張子を含む)画像ファイル名の文字列を格納します。

このキーは、設定ペインバンドルによってのみ使用される必要があります。

画像ファイルは、32 x 32ピクセルサイズアイコンを含む必要があります。

このキーが省略されている場合、システム環境設定アプリケーションはCFBundleIconFileキーを代わりに使用して検索します。



NSPrefPaneIconLabel

NSPrefPaneIconLabel(文字列/Mac OS X)。

このキーは、設定ペイン名の文字列を格納します。

この文字列はシステム環境設定アプリケーション内の設定ペインのアイコンの下に表示されます。

長い名前は、文字列に改行文字『\n』を入れることによって、2行に分割することができます。

このキーが省略されている場合、システム環境設定アプリケーションはCFBundleNameキーから名前を取得します。

このキーは、バンドルのInfoPlist.stringsファイルに含めてローカライズすることができます。



NSPrincipalClass

NSPrincipalClass(文字列/Mac OS X)。

このキーは、バンドルの主要クラス名の文字列を格納します。

このキーは、プラグインや他の動的に読み込まれるバンドル等の、動的読み込みコードのエントリポイントの識別に使用されます。

バンドルの主要クラスは、通常バンドル内の全ての他のクラスと、これらのクラスとバンドル外にあるクラス間の仲介を制御します。

この値によって識別されるクラスは、NSBundleprincipalClassメソッドを使用して取得することができます。

Cocoaアプリケーションでは、このキーの値はデフォルトでNSApplicationです。



NSServices

NSServices(配列/Mac OS X)。

このキーは、アプリケーションによって提供されるサービスを指定する辞書の配列を格納します。

表2にサービスを指定するキーを示します。

表2 NSServices辞書のキー

キーXcode名説明プラット
フォーム
NSPortName"Incoming
service port
name”
文字列このキーは、アプリケーションが着信
サービス要求の監視をするポート名を指定
します。
その値は、サービスプロバイダアプリ
ケーションが登録されている方法に依存
します。
ほとんどの場合、これはアプリケーション
名です。
詳細は『Services Implementation
Guide
』を参照してください。
Mac OS X
NSMessage"Instance
method
name”
文字列このキーは、サービス用に呼び出すインス
タンスメソッド名を指定します。
Objective-Cでは、インスタンスメソッド
messageName:userData:error:形式
にする必要があります。
Javaでは、インスタンスメソッドは
messageName形式(NSPasteBoard、
文字列)にする必要があります。
Mac OS X
NSSendFileTypesNone配列このキーは文字列の配列を指定します。
各文字列はサポートされているファイル
タイプを定義するUTIを含む必要があり
ます。
UTIタイプのみ許可されており、ペースト
ボードタイプは許可されていません。
ペーストボードタイプを指定するには、
NSSendTypeキーを使用し続けます。
このキーに値を割り当てることによって、
サービスは指定されたファイルタイプの
1つ以上に適合するタイプのファイル上
で操作することを宣言します。
サービスは、読み込むことができる
ファイルのURLからペーストボードに
受信されます。
Mac OS X v10.6以降で利用できます。
UTIについての詳細は『Uniform Type
Identifiers Overview
』を参照してくだ
さい。
Mac OS X
NSSendTypes"Send Types”配列このキーは、サービスで読み込むことが
できる任意のデータ型名の配列を指定
します。
NSPasteboardクラスに、いくつかの
一般的なデータ型が説明されています。
このキーとNSReturnTypesキーのどちら
か、または両方を含める必要があります。
Mac OS X v10.5以降では、このキーは
必須です。
Mac OS X v10.6以降では、代わりに
NSSendFileTypesキーを使用する必要が
あります。
Mac OS X
NSService
Description
None文字列このキーは、ユーザへの提示に適した
サービスの説明を指定します。
この説明文字列は、ユーザにサービスに
ついての適切な情報を与えるため、長く
なる可能性があります。
メニューアイテムテキストをローカライズ
するには、バンドル内の各ローカライズ用
にServicesMenu.stringsファイルを生成
します。
この文字列ファイルには、このキーと共に
その値として変換を説明する文字列を
含める必要があります。
文字列ファイルの生成についての詳細は
Resource Programming Guide』を
参照してください。
Mac OS X v10.6以降で利用できます。
Mac OS X
NSRequiredContextNone辞書
または
配列
このキーは、ユーザが利用できる
サービスの条件を持つ辞書を指定します。
また辞書の配列には、各サービスを有効に
する条件の設定を含めることができます。
このキーの値の指定についての詳細は、
この表の後の説明を参照してください。
Mac OS X v10.5以降で利用できます。
Mac OS X
NSRestrictedNoneブール
このキーの値にtrueを指定すると、サンド
ボックス化されたアプリケーションによる
呼び出しからサービスを防ぎます。
サンドボックス化されたアプリケーション
の抑制を回避できるように、特権または
潜在的に危険な操作を実行する場合は、値
をtrueに設定する必要があります。
例えば、サービスが任意のファイルまたは
スクリプトとしてテキスト文字列を実行
する場合は、パスによって指定された任意
のファイルを読み込みまたは書き込み、
またはサービスのクライアントに代わって
ネットワークから任意のURLの内容を取得
する場合はtrueに設定する必要があり
ます。
このキーのデフォルト値はfalseです。
Mac OS X v10.7以降で利用できます。
Mac OS X
NSReturnTypes"Return
Types”
配列このキーは、サービスによって返すこと
ができるデータ型名の配列を指定します。
NSPasteboardクラスに、いくつかの
一般的なデータ型が説明されています。
このキーとNSSendTypesキーのどちらか、
または両方を含める必要があります。
Mac OS X
NSMenuItem"Menu”辞書このキーは、Servicesメニューに追加する
テキストを指定する辞書を格納します。
辞書内のキーのみがdefaultと呼ばれ、
その値はメニュー項目のテキストです。
Mac OS X v10.5以前では、メニュー項目
は一意である必要があります。
アプリケーション名とコマンド名を組み
合わせてスラッシュ文字『/』で区切る
ことによって、一意の名前を確認する
ことができます。
これは効果的にサービスのサブメニューを
生成します。
例えば、Mail/SendはServicesメニューに
Sendという項目を持つMailという
メニューとして表示されます。
サブメニューはMac OS X v10.6以降で
(または必要に応じて)サポートしま
せん。
Mac OS v10.6以降でスラッシュ文字を
指定した場合、スラッシュとそれ以前の
テキストは破棄されます。
代わりに、同じ名前を持つサービスは、
メニュー項目のテキストの後に括弧内に
アプリケーション名を追加することに
よって明確にします。
メニュー項目テキストをローカライズする
には、バンドル内の各ローカライズ用の
ServicesMenu.stringsファイルを生成
します。
この文字列ファイルには、その値として
変換メニュー項目のテキストと共に
defaultキーを含める必要があります。
文字列ファイルの生成についての詳細は、
Resource Programming Guide』を
参照してください。
Mac OS X
NSKeyEquivalent"Menu key
equivalent”
辞書このキーはオプションで、サービス
メニューコマンドを呼び出すために使用
するキーボードと同等の辞書を格納
します。
NSMenuItemと同様に、辞書内のキー
のみがdefaultと呼ばれ、その値は単一
文字です。
ユーザが文字と共にCommand修飾キー
を押すことによって、同様にキーボード
を呼び出すことができます。
文字は大文字と小文字が区別されるので、
大文字と小文字のバージョンで異なる
コマンドを割り当てることができます。
大文字を指定するには、ユーザが他の
キーに加えてShiftキーを押す必要があり
ます。
Mac OS X
NSUserData"User Data”文字列このキーは、選択した値を含むオプション
の文字列です。
Mac OS X
NSTimeout"Timeout
value (in
milliseconds)”
文字列このキーは、応答が必要な時に、サービス
を提供するアプリケーションからの応答を
待つ必要があるServicesの数値をミリ秒
単位で示す、オプションの数値の文字列
です。
Mac OS X

Mac OS X v10.6以降では、NSRequiredContextキーがServicesメニューに表示されるサービスの条件を記述した辞書、または辞書の配列を格納することができます。

単一の辞書を指定した場合、辞書内の全ての条件は表示されるサービスを満たす必要があります。

辞書の配列を指定した場合、これらの辞書の内の1つで全ての条件が、表示されるサービスを満たす必要があります。

表3に各辞書が含めることができる1つ以上のキーを示します。

辞書内の全てのキーはオプションです。

表3 NSRequiredContext辞書の内容

キーXcode名説明プラット
フォーム
NSApplication
Identifier
None文字列
または
配列
このキーの値は文字列または文字列の配列で、
それぞれアプリケーションのバンドルID
CFBundleIdentifierキー)が格納されます。
現在のアプリケーションのバンドルIDが指定
された値のいずれかに一致した場合のみ、
サービスが表示されます。
Mac OS X
NSTextScriptNone文字列
または
配列
このキーの値は文字列または文字列の配列で、
それぞれLathやCyrlなど、標準の4文字スクリプト
タグが格納されます。
選択されたテキストの支配的なスクリプトが、
指定されたスクリプト値のいずれかに一致した
場合のみ、サービスが表示されます。
Mac OS X
NSTextLanguageNone文字列
または
配列
このキーの値は文字列または文字列の配列で、
それぞれ要求されたテキストの言語を示す
BCP-47タグが格納されます。
選択されたテキストの全体的な言語が指定
された値のいずれかに一致した場合、サービス
が表示されます。
マッチングはprefix-machingスキームを使用して
実行されます。
例えば、BCP-47コードen-US、en-GB、en-AU
全てのテキストに一致させるには値enを指定
します。
Mac OS X
NSWordLimitNone数値このキーの値は、サービスが動作することが
できる、選択された単語の最大数を示す整数です。
例えば、ティッカーシンボルで株式を検索する
サービスの場合、ティッカーシンボルは空白を
含めることができないので値は1となります。
Mac OS X
NSTextContextNone文字列
または
配列
このキーの値は文字列または文字列の配列で、
それぞれURL、Data、Address、Email、または
FilePathの値のいずれかが格納されます。
選択されたテキストが対応する型のデータを
含んでいる場合のみ、サービスが表示されます。
例えば、選択されたテキストにhttpベースの
リンクが含まれていた場合、このキーの値が
URLに設定されていると、サービスが表示され
ます。
検出された特定のデータ型を含む一部だけでは
なく、選択されたテキストの全てがservice-
vendingアプリケーションに提供されることに
注意してください。
Mac OS X

アプリケーションへのサービスの実装についての詳細は『Services Implementation Guide』を参照してください。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料

情報プロパティリストキー(6)~Launch Servicesキー

2012. 03. 22
Launch Servicesキー

Launch Serviceは(Mac OS XのCore Servicesフレームワークの一部で)、アプリケーションの起動と、アプリケーションへのドキュメントタイプの照合をサポートします。

その結果、Launch Servicesによって認識されたキーは、バンドルされているコードの適切な実行環境を指定することができます。
(iOSでのLaunch ServicesはプライベートAPIですが、iOSアプリケーションの実行環境を調整するために内部で使用されています)

Launch Servicesキーは、他のキーと識別するために接頭辞にLSを使用しています。

Mac OS XでのLaunch Servicesについての詳細は『Launch Services Programming Guide』や『Launch Services Reference』を参照してください。



キーの概要


表1にLaunch Servicesキーと、Xcodeのプロパティリストエディタでの対応するキー名、各キーの高レベルの説明、そして使用できるプラットフォームを、キーのアルファベット順で一覧に示します。

表1 Launch Servicesキーの概要

キーXcode名概要対応OS
LSApplication
CategoryType
"Application
Category”
App Storeでアプリケーションを分類する
UTIを持つ文字列を格納します。
詳細は『LSApplicationCategoryType
参照。
Mac OS X
LSArchitecturePriority"Architecture
priority”
サポートされているコードのアーキテク
チャと、その実行の優先度を識別する
文字列の配列を格納します。
詳細は『LSArchitecturePriority』参照。
Mac OS X
LSBackgroundOnly"Application is
background
only”
アプリケーションがバックグラウンドで
のみ実行されるかどうかを指定します。
(Mach-Oアプリケーションのみ)
詳細は『LSBackgroundOnly』参照。
Mac OS X
LSEnvironment"Environment
variables”
環境変数とその値を表すキーと値のペアの
リストを格納します。
詳細は『LSEnvironment』参照。
Mac OS X
LSFileQuarantine
Enabled
"File quarantine
enabled”
このアプリケーションが生成するファイル
がデフォルトで隔離されるかどうかを指定
します。
詳細は『LSFileQuarantineEnabled
参照。
Mac OS X
LSFileQuarantine
ExcludedPathPatterns
None自動的に隔離する必要が無いファイルの
ディレクトリを指定します。
詳細は『LSFileQuarantineExcluded
PathPatterns
』参照。
Mac OS X
LSGetAppDiedEvents"Application
should get App
Died events”
子プロセスが死んだ時にアプリケーション
に通知するかどうかを指定します。
詳細は『LSGetAppDiedEvents』参照。
Mac OS X
LSMinimumSystem
Version
"Minimum
system version”
アプリケーションを実行するのに必要な
Mac OS Xの最小バージョンを指定します。
詳細は『LSMinimumSystemVersion
参照。
Mac OS X
LSMinimumSystem
VersionByArchitecture
"Minimum
system versions,
per-architecture”
与えられたプラットフォームアーキテク
チャを実行するために必要なMac OS Xの
最小バージョンを指定します。
詳細は『LSMinimumSystemVersionBy
Architecture
』参照。
Mac OS X
LSMultipleInstances
Prohibited
"Application
prohibits
multiple
instances”
1ユーザまたは複数のユーザが同時にアプリ
ケーションを起動することができるか
どうかを指定します。
詳細は『LSMultipleInstances
Prohibited
』参照。
Mac OS X
LSRequiresIPhoneOS"Application
requires iPhone
environment”
アプリケーションがiOSアプリケーション
かどうかを指定します。
詳細は『LSRequiresIPhoneOS』参照。
iOS
LSRequiresNative
Execution
"Application
requires native
environment”
Rosettaエミュレーションとは対照的に、
インテルベースのMacintoshコンピュータ
上でアプリケーションをネイティブで実行
する必要があるかどうかを指定します。
詳細は『LSRequiresNativeExecution
参照。
Mac OS X
LSUIElement"Application is
agent
(UIElement)”
アプリケーションがエージェントアプリ
ケーション、つまりDockまたは強制終了
ウィンドウに表示されないアプリケー
ションかどうかを指定します。
詳細は『LSUIElement』参照。
Mac OS X
LSUIPresentationMode"Application UI
Presentation
Mode”
アプリケーションの起動時に、システムの
UI要素を可視に設定します。
詳細は『LSUIPresentationMode』参照。
Mac OS X
LSVisibleInClassic"Application is
visible in Classic”
Classic環境で、エージェントアプリケー
ションまたはバックグラウンドのみの
アプリケーションが、他のアプリケー
ションに表示されるかどうかを指定
します。
詳細は『LSVisibleInClassic』参照。
Mac OS X
MinimumOSVersion"Minimum
system version”
使用不可。
代わりに『LSMinimumSystemVersion
を使用してください。
iOS



LSApplicationCategoryType


LSApplicationCategoryType(文字列/Mac OS X)は、アプリケーションのタイプに対応するUTIを格納する文字列です。

App Storeでは、アプリケーションの適切な分類を決定するために、この文字列を使用します。

表2にアプリケーションでサポートされているUTIを示します。

表2 アプリケーションのカテゴリのUTI

カテゴリUTI
ビジネスpublic.app-category.business
開発ツールpublic.app-category.developer-tools
教育public.app-category.education
エンターテインメントpublic.app-category.entertainment
ファイナンスpublic.app-category.finance
ゲームpublic.app-category.games
グラフィックス&デザインpublic.app-category.graphics-design
健康/フィットネスpublic.app-category.healthcare-fitness
ライフスタイルpublic.app-category.lifestyle
医学public.app-category.medical
ミュージックpublic.app-category.music
ニュースpublic.app-category.news
写真public.app-category.photography
仕事効率化public.app-category.productivity
参考書public.app-category.reference
ソーシャルネットワーキングpublic.app-category.social-networking
スポーツpublic.app-category.sports
旅行public.app-category.travel
ユーティリティpublic.app-category.utilities
ビデオpublic.app-category.video
天気public.app-category.weather

表3にゲーム固有のUTIを示します。

表3 ゲームカテゴリ固有のUTI

カテゴリUTI
アクションゲームpublic.app-category.action-games
アドベンチャーゲームpublic.app-category.adventure-games
アーケードゲームpublic.app-category.arcade-games
ボードゲームpublic.app-category.board-games
カードゲームpublic.app-category.card-games
カジノゲームpublic.app-category.casino-games
ダイスゲームpublic.app-category.dice-games
教育ゲームpublic.app-category.educational-games
ファミリーゲームpublic.app-category.family-games
キッズゲームpublic.app-category.kids-games
ミュージックゲームpublic.app-category.music-games
パズルゲームpublic.app-category.puzzle-games
レーシングゲームpublic.app-category.racing-games
ロールプレイングゲームpublic.app-category.role-playing-games
シミュレーションゲームpublic.app-category.simulation-games
スポーツゲームpublic.app-category.sports-games
ストラテジーゲームpublic.app-category.strategy-games
雑学ゲームpublic.app-category.trivia-games
単語ゲームpublic.app-category.word-games



LSArchitecturePriority


LSArchitecturePriority(配列/Mac OS X)は、このアプリケーションがサポートするアーキテクチャを識別する文字列の配列です。

この配列内の文字列の順序は、アーキテクチャに適した実行優先順位を決定します。

表4にこの配列の可能性のある文字列を示します。

表4 実行アーキテクチャ識別子

文字列説明
i38632ビット Intelアーキテクチャ
ppc32ビット PowerPCアーキテクチャ
x86_6464ビット Intelアーキテクチャ
ppc6464ビット PowerPCアーキテクチャ

Intelアーキテクチャの前にPowerPCアーキテクチャを検出した場合、Mac OS XはデフォルトではIntelベースのMacintoshコンピュータであるかどうかに関わらず、Rosettaエミュレーションで実行可能ファイルを実行します。

Mac OS Xに現在のプラットフォームでのネイティブアーキテクチャを強制するには、情報プロパティリストに『LSRequiresNativeExecution』キーを含めてください。



LSBackgroundOnly


LSBackgroundOnly(ブール値/Mac OS X)は、アプリケーションをバックグラウンドでのみ実行するかどうか指定します。

このキーが存在し且つ1に設定されている場合、Launch Servicesはバックグラウンドでのみアプリケーションを実行します。

(ウィンドウが)目に見えないバックグラウンドアプリケーションの生成に、このキーを使用することができます。

アプリケーションがウィンドウサーバへの接続に高レベルフレームワークを使用していて、ユーザへの表示を意図していない場合も、このキーを使用する必要があります。

バックグラウンドアプリケーションは、Mach-O実行可能ファイルとしてコンパイルする必要があります。

このオプションはCFMアプリケーションでは使用できません。



LSEnvironment


LSEnvironment(辞書/Mac OS X)は、このアプリケーションの起動前に設定する環境変数を定義します。

環境変数名は辞書のキーで、対応する環境変数の値となる値を伴います。

キーと値は共に文字列である必要があります。

これらの環境変数は、Launch Servicesを介してアプリケーションを起動した場合でのみ設定されます。

コマンドラインから直接実行可能ファイルを実行した場合、これらの環境変数は設定されません。



LSFileQuarantineEnabled


LSFileQuarantineEnabled(ブール値/Mac OS X)は、このアプリケーションが生成するファイルがデフォルトで隔離されているかどうかを指定します。

説明
trueこのアプリケーションによって生成されたファイルは、デフォルトで隔離されます。
ファイルを隔離すると、システムはファイルがいつ隔離されたかのタイムスタンプ、アプリ
ケーション名、そしてバンドル識別子を自動的に関連付けします。
またアプリケーションは必要に応じてLaunch Servicesを使用して、隔離属性の設定や取得を
行うことができます。
false(デフォルト)
このアプリケーションによって生成されたファイルは、デフォルトでは隔離されません。

このキーはMac OS X v10.5以降で使用できます。



LSFileQuarantineExcludedPathPatterns


LSFileQuarantineExcludedPathPatterns(配列/Mac OS X)は、ファイルの隔離を無効にする際のパスを示す文字列の配列を格納します。

このキーを使用して、アプリケーションのパフォーマンスに影響を与えるファイルの隔離を避けることができます。

配列内の各文字列はshellスタイルのパスパターンで、~、*、?などの特殊文字は標準コマンドライン規則に従って自動的に展開されます。

例えばフォームの文字列『~/Library/Caches/*』は、ユーザのキャッシュディレクトリ内にあるアプリケーションによって生成されたファイルの隔離を無効にすることができます。



LSGetAppDiedEvents


LSGetAppDiedEvent(ブール値/Mac OS X)は、子プロセスのいずれかが終了した時に、OSがこのアプリケーションに通知するかどうかを示します。

このキーの値をYESに設定した場合、システムは各子プロセスが終了した際にAppleイベントkAEApplicationDiedをアプリケーションに送信します。



LSMinimumSystemVersion


LSMinimumSystemVersion(文字列/Mac OS X)は、このアプリケーションの実行に必要なMac OS Xの最小バージョンを示します。

この文字列はnを数値とすると、n.n.nという形式である必要があります。

最初の数値はシステムのメジャーバージョン番号です。

2番目と3番目の数値はマイナーリビジョン番号です。

例えばMac OS X v10.4以降をサポートする場合は、このキーの値を『10.4.0』に設定します。

最小システムバージョンが利用できない場合、Mac OS Xはその事実をユーザに通知するための警告パネルを表示しようと試みます。



LSMinimumSystemVersionByArchitecture


LSMinimumSystemVersionByArchitecture(辞書/Mac OS X)は、アーキテクチャの設定をするための最初期のMac OS Xのバージョンを指定します。

このキーは、キーと値のペアの辞書を格納します。

各キーは『LSArchitecturePriority』キーに関連付けられたアーキテクチャのいずれかに対応します。

各キーの値は、そのアーキテクチャ下で実行するアプリケーションに必要なMac OS Xの最小バージョンです。

この文字列はnを数値とすると、n.n.nという形式である必要があります。

最初の数値はシステムのメジャーバージョン番号です。

2番目と3番目の数値はマイナーリビジョン番号です。

例えばMac OS X v10.4.9以降をサポートする場合は、このキーの値を『10.4.9』に設定します。

現在のシステムバージョンが要求する最小バージョンよりも小さい場合、Launch Servicesは対応するアーキテクチャの利用を試みません。

このキーは実行アーキテクチャの選択のみに適用され、『LSMinimumSystemVersion』キーと組み合わせて使用することができ、アプリケーションの全体的な最小システムバージョン要件を指定します。



LSMultipleInstancesProhibited


LSMultipleInstancesProhibited(ブール値/Mac OS X)は、アプリケーションが複数ユーザのセッションの同時実行を禁止するかどうかを示します。

trueの場合、アプリケーションは同時に1つのユーザセッションのみ実行します。

このキーを使用することで、複数ユーザのセッション間でアプリケーションを共有することによって発生する可能性があるリソースの競合を防ぐことができます。

例えばカスタムUSBデバイスが別のユーザによって既に使用されている場合、ユーザからのアクセスを防ぐことができます。

ターゲットアプリケーションが起動できない場合、Launch Servicesは適切なエラーコードを返します。

別のセッションでユーザがアプリケーションを実行している場合、Launch ServicesはkLSMultipleSessionsNotSupportedErrエラーを返します。

現在のセッション内で別個のアプリケーションの起動を試みた場合、kLSMultipleInstancesProhibitedErrを返します。



LSRequiresIPhoneOS


LSRequiresIPhoneOS(ブール値/iOS)は、アプリケーションがiOS上でのみ実行できるかどうかを指定します。

このキーがYESに設定されている場合、Launch ServicesはホストプラットフォームがiOSの時のみアプリケーションの起動を行います。



LSRequiresNativeExecution


LSRequiresNativeExecution(ブール値/Mac OS X)は、現在のアーキテクチャのサブバイナリを使用して、アプリケーションを起動するかどうかを指定します。

このキーがYESに設定されている場合、Launch Servecesは常に現在のアーキテクチャ用にコンパイルされたバイナリを使用してアプリケーションを実行します。

このキーを使用することによって、ユニバーサルバイナリがIntelベースMacintoshコンピュータ上のRosettaエミュレーション下で実行されることを防ぐことができます。

実行アーキテクチャの構成についての詳細は『LSArchitecturePriority』を参照してください。



LSUIElement


LSUIElement(文字列/Mac OS X)は、エージェントアプリケーションとしてアプリケーションを実行するかどうかを指定します。

このキーが『1』に設定されている場合、Launch Servicesはアプリケーションをエージェントアプリケーションとして実行します。

エージェントアプリケーションはDockまたは強制終了ウィンドウに表示されません。

これらは通常バックグラウンドアプリケーションとして実行されますが、必要に応じてユーザインターフェイスをフォアグラウンドにすることもできます。

エージェントアプリケーションに属するウィンドウをクリックすると、イベントを処理するためにアプリケーションを前面にします。

Dockとログインウィンドウはエージェントアプリケーションとして実行されるアプリケーションの内の2つです。



LSUIPresentationMode


LSUIPresentationMode(数値/Mac OS X)は、アプリケーションの初期ユーザインターフェイスモードを識別します。

これは、DockやメニューバーなどのUI要素を含む画面の一部を引き継ぐ可能性のあるアプリケーションで使用されます。

ほとんどのモードは画面のコンテンツ領域に表示されるUI要素のみ、つまりメニューバーを含まない画面の領域に影響を与えます。

ただし、全てのUI要素を非表示にするように要求することもできます。

このキーはCarbonとCocoaアプリケーションの両方に適用することができ、下表の値のいずれかを指定することができます。

説明
0通常モード。
このモードでは、全ての標準システムUI要素が表示されます。
これはデフォルト値です。
1コンテンツ抑制モード。
このモードでは、画面のコンテンツ領域内のシステムUI要素が非表示になります。
UI要素は、マウスの移動や他のユーザアクティビティに応じて、自動的に表示されます。
例えばDockの自動表示領域にマウスを移動した場合に、Dockを表示することができます。
2コンテンツ非表示モード。
このモードでは、画面のコンテンツ領域内のシステムUI要素が非表示になりますが、マウスの
移動や他のユーザアクティビティに応じて自動的に表示されません。
3全非表示モード。
このモードでは、メニューバーを含む全てのUI要素が非表示になります。
要素は、マウスの移動やユーザアクティビティに応じて自動的に表示されません。
4全抑制モード。
このモードでは、メニューバーを含む全てのUI要素が非表示になります。
UI要素は、マウスの移動や他のユーザアクティビティに応じて自動的に表示されます。
このオプションは、Mac OS X v10.3以降でのみ利用することができます。



LSVisibleInClassic


LSVisibleInClassic(文字列/Mac OS X)。

このキーが『1』に設定されている場合、このキーを持つエージェントアプリケーションやバックグラウンドのみのアプリケーションは、Classic環境でバックグラウンドのみのプロセスとして表示されます。

このキーを持たないエージェントアプリケーションとバックグラウンドのみのアプリケーションは、Classicの実行プロセスとして全く表示されません。

プロセスがClassicアプリケーションと明示的に通信する必要がある場合を除き、このキーを含める必要はありません。



MinimumOSVersion


MinimumOSVersion(文字列/iOS)。

iOSアプリケーションをビルドする場合、XcodeはMinimumOSVersionキーの値の設定に、プロジェクトのiOS配置ターゲット設定を使用します。

このキーはInfo.plistファイルに自身で指定するものではなく、システムによって記述されるキーです。

アプリケーションをApp Storeに公開する場合、Storeはこのキーに基づいてアプリケーションが実行できるiOSのバージョンを示します。

これはMac OS XのLSMinimumSystemVersionキーを同等です。



参考文献

Information Property List Key Reference

0 CommentsPosted in 資料





Bose QuietComfort 20
Calendar
02 | 2012/03 | 04
Sun Mon Tue Wed Thu Fri Sat
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR