0

インストール後、Mac OSX で自分のアプリの表示されるアプリケーション名が思い通りにならないという問題があります。これは、アプリ ストアの外で pkg ファイルとして配布されるアプリ用です。Mac の「アプリケーション」フォルダに表示されるアプリケーション名を除いて、すべて正常に動作します。私が何をしても、表示されるのは常にバンドル名 (.app なし) です。Info.plistファイル内で付けた名前を使用すると思っていました。

これが私がやっていることです。

次のように、バンドルの表示名を定義する Info.plist を含むアプリのバンドルを作成します。

myapp.app/
myapp.app/Contents
myapp.app/Contents/Info.plist
myapp.app/Contents/MacOS
...
myapp.app/Contents/Resources
...

実際には、Xcode を使用せずに qmake/make/macdeployqt を使用してビルドした Qt ベースのアプリです。しかし、それは私の問題とは無関係であるべきだと思います。私のInfo.plistファイルには次のものがあります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>

  <key>CFBundleIdentifier</key>
  <string>uk.co.blahdomain.MyApplication</string>
  <key>CFBundleName</key>
  <string>My Application</string>
  <key>CFBundleDisplayName</key>
  <string>My Application</string>

.....
</dict>
</plist>

次のように、アプリのインストーラー パッケージをビルドします。

pkgbuild --component myapp.app --version 1 --install-location /Applications component.pkg
productbuild --distribution distribution.xml --resources ./distresources --package-path . --version 1.2.3 --sign "Developer ID Installer: blah company name" test.pkg

ご覧のとおり、ビルド プロセスによってmyapp.appバンドル フォルダーが作成され、そこから and を使用して作成されまし.pkgた。しかし、最終的な製品パッケージに含まれるコンポーネント パッケージ内に埋め込まれているのは、表示される名前を (私が欲しい) と言うファイルです。pkgbuildproductbuildInfo.plist"My Application"

Finder から .pkg ファイルを実行できますが、すべて正常にインストールされているようです。

しかし、(タスクバーの「A」アイコンを使用して)アプリケーションフォルダーを開くと、そこにはありますが、呼び出されるのでは'My Application'なく'myapp'、アプリケーションバンドルの名前が呼び出されます。表示される名前だけが常に間違っています。

だから...問題は、ユーザーに表示される名前を制御したいということですが、スペースが含まれているため、bundle.appの名前として使用できません。

では、/Applications フォルダー内およびタスク バー アイコンにアプリケーション名を表示するにはどうすればよいでしょうか。

ありがとう

4

1 に答える 1

1

Finder には、バンドル名ではなく、ファイル名 (拡張子がない場合もあります) が表示されます。ファインダーに「My Application」として表示する場合は、バンドル フォルダーに「My Application.app」という名前を付ける必要があります。適切に引用すれば、名前にスペースが含まれていても問題ありません。

pkgbuild --component "My Application.app" --version 1 --install-location /Applications component.pkg

qmake/make/macdeployqt ツールがファイル名のスペースに対応できない場合は、

  1. ツールを修正します。ファイル名のスペースはそれほど難しくありません。すべての変数参照を二重引用符で囲むなど、適切なシェル引用符を使用する必要があります。
  2. または、スペースなしでアプリ バンドルを作成し、配布用にパッケージ化する前に名前を変更します。

編集: CFBundleDisplayName キーの目的は、表示されるアプリケーション名の言語ローカライズを可能にすることです。基本的に、実際のフォルダー名と同じに設定し、そのローカライズを Contents/Resources/somelanguage.lproj/InfoPlist.strings ファイルに含めると、実際のファイル名の代わりにそのローカライズされた名前が表示されます。ただし、ユーザーが名前を変更した場合 (これは完全に合理的なことです)、Finder は CFBundleDisplayName と実際の名前の不一致を認識し、ローカリゼーションを無視して、ユーザーが選択した名前を表示します。説明については、CFBundleDisplayName に関する Apple ドキュメントを参照してください。

于 2014-03-16T05:32:15.707 に答える