2013-04-17 40 views
1

首先,python應用程序針對Mac App Store。 並且Apple通過電子郵件發送了我的應用程序未啓用沙箱。如何在OSX上爲python應用程序啓用應用程序沙箱(該python應用程序針對Mac App Store)

如下:

尊敬的開發商,

我們已經發現了一個或多個問題與您最近的交付 「互聯網絡」。爲了處理您的交付,以下問題必須予以糾正:

應用程序沙箱未啓用 - 下面的可執行文件必須包含「com.apple.security.app的沙箱」權利與真正的布爾值權利屬性列表。有關沙盒應用的更多信息,請參閱應用沙盒頁面。

InternetWorks.app/Contents/MacOS/InternetWorks

一旦這些問題已得到糾正,轉到版本詳細信息頁面,然後點擊「準備上傳二進制」。繼續完成提交過程,直到應用狀態爲「等待上傳」。然後您可以提供更正的二進制文件。

問候,

的App Store的團隊

由於我的應用程序是用Python寫的,我不知道該怎樣做爲它的權利屬性列表想法。

從Apple的文檔中,授權屬性列表是在Xcode項目中創建的,並且與可執行文件有關。但是,我的應用程序又是用Python編寫的,它基本上只是幾個* .py文件,我已經使用py2app/cx_Freeze工具將它打包到「my_app_name.app」可執行文件中。

因此,可以手動創建/製作我已經打包的python應用程序(My_App_name.app文件)的權利屬性列表文件,並且如何在沒有XCode項目的情況下執行此操作?

在此先感謝。

回答

0

在某些情況下,配置您的.entitlements的接口看起來像這樣screenshot

它自動在您的$(SOURCE_ROOT)中創建一個名爲AppName.entitlements的文件。

.plist s是蘋果公司用於處理'傳統'unix文本配置文件的幾乎所有文件的XML文件。如果您在OSX上使用Python進行開發,您可能會發現Python plistlib有幫助。蘋果有福的方式來編輯它們是使用XCode本身(before XCode4 there was a stand-alone Property List Editor.app)。

在這種情況下,他們需要的僅僅是默認包含:

<?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>com.apple.security.app-sandbox</key> 
    <true/> 
</dict> 
</plist> 

我懷疑,如果你簡單地粘貼到一個文件名爲InternetWorks.entitlements你會解決他們的問題。雖然您可能需要更多的請求the available permissions

+1

謝謝你的回答。這和我所做的幾乎一樣。 我終於想出通過以下步驟:\ n 1)創建一個手動互聯-Entitlements.plist文件;(是的,這只是一個xml文件) 2)發出此命令: '協同設計 - -entitlements ./InternetWorks-Entitlements.plist -s「My Cert here」。/ InternetWorks.app' 無論如何,我通過驗證。 謝謝你們一切。 – handsomegui

相關問題