我正在使用PyObjC在Python中编写一个相对简单的助手应用程序。由于它的简单性(一个主文件在另一个文件中有一些辅助函数),我不使用Xcode进行开发。
但是,我想设置一些Info.plist
密钥,我不知道如何让我的程序找到Info.plist
文件。特别是,我想将LSUIElement
密钥设置为1
,以便在Dock中隐藏我的应用程序。
我在与主.py文件相同的目录中创建了一个名为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>LSUIElement</key>
<string>1</string>
</dict>
</plist>
然而,它并没有成功地从Dock中隐藏我的应用程序。
我有两个问题:
在应用程序中进行验证的最简单方法是什么是否正在读取
Info.plist
文件?可能有任何数字Dock图标没有隐藏的原因,那么有一些简单的原因吗我可以在Info.plist
中设置密钥,然后在我的应用程序中评估检查是否正在读取Info.plist
?使用时,设置
Info.plist
文件的正确方法是什么PyObjC?在我的主程序中是否有一些变量需要设置告诉它在哪里可以找到Info.plist
?
非常感谢您的帮助或指导!
===
编辑:问题基本解决了——我想我只是看错了方向。
看起来正确的做法是首先使用py2app捆绑我的应用程序,py2app在捆绑包中创建自己的Info.plist
,然后编辑/替换该Info.plist
以包含元素
<key>LSUIElement</key>
<string>1</string>
我想补充一下。它就像一个符咒——我的应用程序现在被隐藏在Dock之外。成功
要使用Info.plist文件,脚本需要是应用程序包的一部分,系统库只在应用程序包中的特定位置查找Info.plist。
如果从命令行("python-main.py")启动脚本,系统将使用Info.plist文件,但该文件嵌入在python安装中。
创建应用程序包的最简单方法是使用py2app,它可以构建独立的应用程序包,并具有自定义info.plist的选项:http://pythonhosted.org/py2app/tweaking.html.