我有一个用Eclipse为MacOSX构建的Java应用程序。此应用程序通过**.pkg文件安装,并且应该是守护程序**。一切正常,Macbooks**(Pro,Retina),但对于我使用的iMac**,当应用程序启动时,我在Dock上有一个图标,正如您在following link上看到的那样。
我已经在这个主题中尝试了解决方案:stackoverflow.com/a/620950/3641679,但它没有工作(我仍然有码头图标)。目前Info.plist看起来像this。
我该怎么办?
谢谢你花时间来帮助我。
信息(假设app名称为testapp)
- 我使用launchctl start/stop停止或启动**守护程序
- 当我双击可执行文件(在testapp.app*testapp中)时,我在Dock中有testapp.app(带有Info.plist中指定的图标文件)。截图如下res.cloudinary. com/doit0eqlo/image/upload/v1400750376/app_k3adzh.png**
- 对不起的一些链接,我必须有10个信誉后2个以上的链接。
2条答案
按热度按时间lpwwtiir1#
我终于找到了解决办法!解决方案分为几个步骤。
第一步:编辑Info.plist
我必须添加LSBackgroundOnly键。是字符串,必须设置为1。
正如Apple文档中所述:
LSBackgroundOnly
指定此应用程序是否仅在后台运行。如果此键存在并设置为“1”,则Launch Services仅在后台运行应用。
说明:
尽管文档中指定了这个键是一个boolean,但将它设置为一个string,其中的值为1。
要执行此操作,请执行以下操作:
1.转到应用程序的文件夹
1.进入**.app的文件夹,然后进入Contents文件夹(例如/Applications/test.app/Contents)
1.使用您想要的任何文本编辑器(SublimeText、TextEdit、Xcode等)打开Info.plist**
1.在关闭dict标记(
</dict>
)前添加以下行<key>LSBackgroundOnly</key>
个<string>1</string>
个保存一切。
第二步:编辑appname.ini
最初我只做了第一部分,所以这还不够。我在this question中找到了解决方案。
该文件位于应用程序的**.app中的“Contents/MacOs”文件夹中(例如/Applications/testapp.app/Contents/MacOs/testapp.ini)。
1.打开.ini**文件(使用您想要的任何文本编辑器)。
1.在
-vmargs
行之前,添加以下行:-nosplash
个1.在
-vmargs
行之后,添加以下两行:-Xdock:隐藏
-Dapple.awt.UIElement=false
保存文件,现在您可以启动应用程序:它不应该是任何图标,无论是在Dock还是在“强制退出”窗口中,但您的应用程序应该在后台运行。
希望这能帮上忙
am46iovg2#
将此添加到您的info.plist:-
字符串
注意这里的值被设置为'true'而不是1
如Apple docs状态:-
指定应用程序是否为代理应用程序,即不应显示在“停靠”或“强制退出”窗口中的应用程序。有关详细信息,请参见“LSUIElement”。