🌐

【macOS】.appファイル名とDockの表示名の変更とCFBundleNameのローカリゼーション

2024/04/20に公開

はじめに

Dockのアイコンをホバーして表示されるアプリの名前は、.appファイルの名前が使用されます。
ビルドしてできた.appファイルは、DerivedDataに格納されています。

そして、Info.plistのCFBundleNameCFBundleDisplayNameを変更しても.appファイルの名前は変わらないため、Dockの表示名も変わりません。

Product Nameを変更する

TargetのBuild SettingsのProduct Nameを変更することで、.appファイル名を変更することができます。

しかし、このProduct Nameに濁点や半濁点が含まれていると、ビルドが通りません。
「マイアフリ」のビルドは通りますが、「マイアプリ」は通りません。

これはXcode 10の時代からあるバグのようです。
ちなみに、iOSではこのようなことはありませんでした。
http://t-ishii.cocolog-nifty.com/blog/2018/11/post-2e32.html#:~:text=で、色々な,いる様だ。

CFBundleNameをローカライズする

Appleのアプリケーションを見てみると、「ミュージック.app」のように、ローカライズされた名前が.appファイル名に使用されているものがあります。

.appファイル名をローカライズするには、Info.plistのCFBundleNameをローカライズします。
ローカライズされたCFBundleNameが、.appファイルの名前に使用されます。

冒頭の通り、Info.plistのCFBundleNameを直接編集しても.appファイル名は変わりません。
それなのに、CFBundleNameがローカライズされている場合には.appファイル名にCFBundleNameが使われるというのは不思議ではありますが、実際、この方法で.appファイル名をローカライズすることができます。

そして、ローカライズされるCFBundleNameには、濁点や半濁点が入っていても大丈夫です。
多言語対応の必要がない場合でも、この方法で.appファイル名を変更することができます。

手順

レガシーなInfoPlist.stringsは使わず、Xcode 15で追加されたString Catalogを使ってInfo.plistをローカライズすることができます。

https://zenn.dev/d_date/articles/d8640a8cbae8e2#info.plistの文字列を管理する

  1. ファイルの追加でString Catalogを選択し、InfoPlist.xcstringsの名前で追加します。
  2. keyにCFBundleNameを追加し、値を入力します。
  3. Info.plistにLSHasLocalizedDisplayNameを追加し、YESを入力します。

おわりに

ビルドして、反映されていれば成功です。


株式会社Never

Discussion