16

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

それは言う公式ドキュメントを指します:

CFバンドル名

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

iOSでこの名前を表示する方法を誰か教えてもらえますか?

iPhone でこの値を表示することはできませんでした。

4

7 に答える 7

25

iOSの場合、ユーザーにはどこにCFBundleNameでも表示されるようには見えません。Mac OS X(明らかにiOSは多くのレガシーインフラストラクチャを継承しています)のドキュメントを見たことがあると思います。これは、バンドル名他の目的で使用されていることを示しています...上部のメニューの名前だった可能性がありますバー、または下部のドックバー。もちろん、iOSにはどちらも存在しません。

私はまた、このStack Overflowの回答を見つけました。これは現在かなり古いものです(ただし、かなりの数の賛成票があります)。CFBundleName = HelloWorldこの回答は、CFBundleNameがアプリが保存されているフォルダーの名前であると主張しています。したがって、たとえば、

+- HelloWorld.app
    - HelloWorldApplication

実行可能ファイル名がに設定されている場合HelloWorldApplication。ただし、単純なプログラムを作成してiOS 5.0で実行しただけで、.appフォルダーの名前は。と同じではありませんでしCFBundleNameた。したがって、それがそのように機能した場合、それはもはやそうではないようです。

CFBundleName私は、Xcodeでそれを設定したままにしておくべきだと言っているかなりの数の参照を見てき${PRODUCT_NAME}ました。これは私がいつもしていることです。技術的な制限としてではなく、Appleのレビュー基準として、私は人々CFBundleDisplayNameがに密接に関連しているに違いないと主張するのを見てきましたCFBundleName。たとえば、の短縮版でCFBundleNameあれば問題ありませんが、まったく関係がない場合はアプリを拒否する可能性があります。

また、 Settings.appとiTunesでリストを確認しましたが、どちらの場所にもバンドル名が表示されませんでした。

したがって、あなたの質問に答えるために、この変数がユーザーに表示されるとは思いません(iOSの場合)。


更新:ただし、アクセシビリティ機能がこの名前をどこでも話す可能性があるかどうかは確認していません。

また、このSOの回答は、アプリのiTunes AppStoreURLで使用される名前になると主張していCFBundleNameます。ただし、以下の@tc。のコメント/サンプルURLを参照してください...


更新2:以下の@honusのコメントによると、ユーザーに表示される可能性のある1つの異常なシナリオは、アプリのInfo.plistファイルにのエントリがない場合です。その場合、SpringBoardのアプリアイコンの下に表示されます。CFBundleName CFBundleDisplayNameCFBundleName

于 2012-09-02T00:45:25.867 に答える
0

このようなキーにアクセスできます。

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]

はどこinfoDicitonaryですかA dictionary, constructed from the bundle's Info.plist file。そこでは、アプリに関するこの種の情報を見つけることができます。NSバンドル

注:App-info.plistファイルを開き、任意の場所を右クリックしてオプションを選択すると、実際のキーを確認できますShow Raw Keys/Values

于 2012-08-27T17:43:38.750 に答える
-1

プロジェクト ツリーでコンテキスト クリックし、[Open As] > [Source Code] を選択して info.plist ファイルを開くと、plist の XML 表現が表示されます。デフォルトでは、これら 2 つのキーは同じ値を持つため、どちらにもアクセスできます。

<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>

実際に値を取得するには、この SO 投稿をガイドラインとして使用できます: How to display the current project version of my App to the user? CFBundleVersionキーを に置き換えるだけCFBundleDisplayNameです。

本質的に:

NSString *displayName = [[[NSBundle mainBundle] infoDictionary] 
                                          valueForKey:@"CFBundleDisplayName"];
于 2012-08-27T18:06:51.530 に答える
-4

バンドル名は、ファイル システム上の実際のアプリケーション バンドルの名前です。

バンドルの表示名は、iOS デバイスでユーザーに表示されるアプリケーション アイコンのキャプション、または OSX でのアイコンのキャプションです。

于 2012-09-05T06:45:03.373 に答える