XcodeというかMacOS Xでの各名前の扱い

絶対忘れるんで覚え書き。

Xcodeには色々名前を設定するところがあって、ざっと気づいたものでも

  1. Xcodeアイコンのところで「情報を見る」と「一般」タブで表示される「名前」
  2. ターゲットのところで「情報を見る」と「一般」タブで表示される「名前」
  3. 同じくターゲットの「一般」タブで表示される「プロダクト」
  4. 同じくターゲットの「プロパティ」タブで表示される「実行可能ファイル」(Info.plistのCFBundleExecutable)
  5. Info.plistのCFBundleName
  6. さらに、自分でできあがった.appの名前を変えてつける「パッケージ名」

という6つの「名前」がある。

何個かルールを見つけたので挙げておくと、

  1. Xcodeアイコンのところの「名前」は、プロジェクトファイル名に使われるが、(Xcodeがプロジェクトファイルを開いているので)実質編集できない。変える場合はXcodeのプロジェクトを閉じて、Finderで変える
  2. ターゲットの「名前」はビルドの際に中間ファイル保存先として使われるほか、「ターゲット」の一覧に現われるが、実行ファイルには一切関係ない(ゼロリンク時はパスがかかれちゃうらしいので、デバッグ版では関係ありそうだけど)
  3. プロダクト名はアクティビティモニタやDragThingのプロセスドックで表示されるプロセス名として使われる
  4. CFBundleNameはAppleメニューの隣のNew Applicationの代わりに表示される
  5. パッケージ名はDockで表示される
  6. CFBundleExecutableとプロダクト名が異なっていると、Dockにアイコンが表示されず、メニューバーにもメニューが現われない(バックグランドアプリになるみたい、だが、Classicのバックグランドオンリーアプリと違って、ウィンドウは表示することができる)

まあ正直言ってややこしいだけなんだけど、さらにややこしいのは、日本語で名前を付けるとビルドできなくなる「名前」があるということ。
単純に考えて怪しいのは「ターゲット名」なんだけど、CFBundleExecutableも日本語を付けると失敗する。ということは「プロダクト名」も同じにする必要がある(でないとメニュー使えないし)。

て、いうところなんだけど、なぜか「アクティビティモニタ」や「コンソール」は日本語名がアクティビティモニタに表示される。

これは一体全体?