【问题标题】:Setting up Info.plist file in Python and PyObjC, without Xcode在 Python 和 PyObjC 中设置 Info.plist 文件,无需 Xcode
【发布时间】:2013-07-24 17:10:51
【问题描述】:

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

但是,我想设置一些Info.plist keys,但我不确定如何让我的程序找到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 中隐藏我的应用程序。

我有两个问题:

  1. 从应用程序内部验证的最简单方法是什么 是否正在读取Info.plist 文件?可能有任何数字 Dock 图标没有隐藏的原因,有没有一些简单的 我可以在Info.plist 中设置密钥,然后从我的应用程序中评估 检查是否正在读取Info.plist

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

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

===

编辑:问题基本解决了——我想我只是看错了。

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

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

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

【问题讨论】:

    标签: python python-2.7 pyobjc info.plist


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的帮助!我现在正在使用 py2app,并且可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多