web-dev-qa-db-ja.com

cocoaアプリケーションの情報plistの「バンドル表示名」と「バンドル名」の違いは何ですか

ここに良い質問があります:

バンドル名、実行可能ファイル名、製品名...その他?

しかし、ココアアプリケーションの情報plistの「バンドル表示名」と「バンドル名」の違いについて疑問に思っています。

115
xhan

他の答えが質問に簡潔に答えているとは思いません。

  • CFBundleDisplayName-表示:アイコンの下。ドキュメントによると、ローカライズする必要がありますが、アプリ自体がローカライズされている場合にのみ、そうでない場合は何らかのペナルティがあります(実際にそうであれば、私は言うことができません)

  • CFBundleName-表示:わからない。ドキュメントでは、リストで使用することが推奨されているため、最大16文字が推奨されますが、たとえば、[設定]→[全般]→[アプリの使用リスト]ではCFBundleDisplayNameを実際に使用します。今までのところ、これが正確にどこで使用されているのかはわかりませんでした。

ああ、これはiOSアプリ用であり、他のOSについて話すことはできません。

96
Jonny

wevahの回答に感謝します。ここに、この2つの定数と混同した人々の説明があります。

CFBundleDisplayName

CFBundleDisplayName(文字列-iOS、Mac OS X)は、バンドルの表示名を指定します。バンドルのローカライズされた名前をサポートする場合は、情報プロパティリストファイルと言語サブディレクトリのInfoPlist.stringsファイルの両方にこのキーを含めます。このキーをローカライズする場合は、CFBundleNameキーのローカライズバージョンも含める必要があります。

バンドルをローカライズする予定がない場合は、Info.plistファイルにこのキーを含めないでください。このキーを含めてもバンドル名の表示には影響しませんが、このキーのローカライズされたバージョンを検索するとパフォーマンスが低下します。

バンドルのローカライズされた名前を表示する前に、Finderはこのキーの値をファイルシステム内のバンドルの実際の名前と比較します。 2つの名前が一致する場合、Finderはバンドルの適切なInfoPlist.stringsファイルからローカライズされた名前を表示します。名前が一致しない場合、Finderはファイルシステム名を表示します。

Mac OS Xの表示名の詳細については、「ファイルシステムの概要」を参照してください。


CFBundleName

CFBundleName(文字列-iOS、Mac OS X)は、バンドルの短い名前を識別します。この名前は16文字未満で、メニューバーおよびアプリケーションの情報ウィンドウに表示するのに適している必要があります。このキーを適切な.lprojサブディレクトリのInfoPlist.stringsファイルに含めて、ローカライズされた値を提供できます。このキーをローカライズする場合は、キーCFBundleDisplayName.も含める必要があります

85
xhan

a busy cat

Appleによると、

バンドルの表示名:

表示されるアプリ名on the iPhone home screenは、iOSアプリのInfo.plistのCFBundleDisplayName(またはXcodeの人間が読み取れる文字列としての「バンドル表示名」)エントリから取得されます。

同様に、WatchKit app's launch screenおよびnotificationsに表示されるアプリ名は、WatchKitアプリのInfo.plistのCFBundleDisplayNameに由来します。

バンドル名:

The Apple Watch app on the iPhoneは現在、iOSアプリのバンドル名(バンドル表示名ではなく)を使用します。これは、Info.plistのCFBundleName(または「バンドル名」)エントリで指定されます

他の関連するスクリーンショットを見るには、Apple開発者ページ ここをクリック で詳細情報にアクセスできます。

26
Safa

私の経験から:

  • CFBundleDisplayNameは、iOSデバイスのアプリのグリッドで使用されます
  • CFBundleNameは、iTunesライブラリに保存されているアプリのリストで使用されます
14
wojked

バンドル表示名(CFBundleDisplayName)が指定されていない場合のみ、バンドル名(CFBundleName)の値がアプリアイコンの下に表示されます。

CFBundleDisplayNameはローカライズ可能であり、iOS SpringboardメニューとMac OS Xアプリケーション/ Mission Controlに表示されるアプリ名の設定に使用する必要があることに注意してください。

要するに、CFBundleNameには触れず、その値をデフォルトのままにしないでください。つまり、${PRODUCT_NAME}

9
Raptor