2013-07-24 47 views
0

我使用PyObjC在Python中編寫了一個相對簡單的幫助程序。由於其簡單性(一個主文件和另一個文件中有一些輔助函數),我沒有使用Xcode進行開發。在沒有Xcode的情況下在Python和PyObjC中設置Info.plist文件

但是,我想設置一些Info.plist keys,我不知道如何讓我的程序找到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. 使用 PyObjC時,設置Info.plist文件的正確方法是什麼?是否有一些變量需要在我的主程序 中設置,以告訴它在哪裏可以找到Info.plist

任何幫助或指導,非常感謝!

===

編輯:問題解決了大部分 - 我想我只是觀察事物的方式不對。

看起來做事的正確方法是第一捆綁使用py2app我的應用程序,它創建了自己的Info.plist捆裏面,然後編輯/替換Info.plist包括元素

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

我想添加。它就像一個魅力 - 我的應用程序現在隱藏在Dock中。成功!

回答

2

要使用Info.plist文件,腳本需要成爲應用程序包的一部分,系統庫僅在應用程序包的特定位置查找Info.plist。

如果您從命令行(「python main.py」)啓動腳本,系統將使用Info.plist文件,但嵌入在python安裝中。

創建應用程序包最簡單的方法是使用py2app,它可以構建獨立的應用程序包並具有自定義info.plist的選項:http://pythonhosted.org/py2app/tweaking.html

+0

謝謝你的幫助!我現在正在使用py2app,並讓它工作。 – ekl

相關問題