0

我正在使用 PyObjC 在 Python 中编写一个相对简单的帮助应用程序。由于它的简单性(一个主文件在另一个文件中有一些辅助函数),我没有使用 Xcode 进行开发。

但是,我想设置一些Info.plist,但我不确定如何让我的程序找到Info.plist文件。特别是,我想将LSUIElement密钥设置为1以便从 Dock 中隐藏我的应用程序。

Info.plist在与主 .py 文件相同的目录中创建了一个文件,并添加了以下文本:

<?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 中隐藏起来。

我有两个问题:

  1. 从应用程序中验证Info.plist文件是否正在被读取的最简单方法是什么?Dock 图标没有隐藏的原因可能有很多,所以我可以设置一些简单的键Info.plist,然后在我的应用程序中进行评估以检查它是否正在读取Info.plist

  2. Info.plist使用 PyObjC 时设置文件的正确方法是什么?我必须在我的主程序中设置一些变量来告诉它在哪里可以找到Info.plist

非常感谢任何帮助或指导!

===

编辑:问题基本解决了——我想我只是用错误的方式看待事情。

看起来正确的做事方式是首先Info.plist使用 py2app 捆绑我的应用程序,它在捆绑包中创建自己的应用程序,然后编辑/替换它Info.plist以包含该元素

<key>LSUIElement</key>
<string>1</string>

我想添加。它就像一个魅力——我的应用程序现在从 Dock 中隐藏了。成功!

4

1 回答 1

2

要使用 Info.plist 文件,脚本需要成为应用程序包的一部分,系统库仅在应用程序包中的特定位置查找 Info.plist。

如果您从命令行(“python main.py”)启动脚本,系统将使用 Info.plist 文件,但该文件嵌入在 python 安装中。

创建应用程序包的最简单方法是使用py2app,它可以构建独立的应用程序包并具有自定义 info.plist 的选项:http: //pythonhosted.org/py2app/tweaking.html

于 2013-07-25T06:06:27.890 回答