我在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
...
它实际上是一个基于Qt的应用程序,我使用qmake / make / macdeployqt构建而不使用Xcode。但我认为这应该与我的问题无关。在我的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
软件包文件夹,然后我使用.pkg
和pkgbuild
创建了productbuild
。但是嵌入在最终产品包中的组件包中的是Info.plist
文件,该文件说明显示的名称是什么(我想要的) - "My Application"
。
我可以从Finder运行.pkg文件,它似乎都安装好了。
但是,当我打开我的Applications文件夹(使用任务栏中的'A'图标)时,它会在那里调用'My Application'
,而是调用'myapp'
,这是应用程序包的名称。它运行正常,只显示总是错误的名称。
所以...问题是我想控制用户看到的名称,但因为它包含空格我不能使用它作为bundle.app中的名称。
那么......如何在/ Applications文件夹和任务栏图标中显示我想要的应用程序名称?
由于
答案 0 :(得分:0)
Finder显示文件名(有时没有扩展名),而不是包名;如果您希望查找程序将其显示为&#34;我的应用程序&#34;,您必须将软件包文件夹命名为&#34; My Application.app&#34;。如果您正确引用它,名称中的空格不应该成为问题:
pkgbuild --component "My Application.app" --version 1 --install-location /Applications component.pkg
如果qmake / make / macdeployqt工具无法处理文件名中的空格,那么
编辑:CFBundleDisplayName键的目的是允许显示的应用程序名称的语言本地化。基本上,如果您将其设置为等于实际文件夹名称,然后在Contents / Resources / somelanguage.lproj / InfoPlist.strings文件中包含它的本地化,则它将显示该本地化名称而不是真实文件名。但是,如果用户重命名它(这是完全合理的事情),Finder将看到CFBundleDisplayName与实际名称不匹配,忽略本地化,并显示用户所选的名称。有关他们的解释,请参阅Apple docs on CFBundleDisplayName。