Как включить песочницу приложения для приложения python в OSX (приложение python предназначено для Mac App Store)

Прежде всего, приложение python предназначено для Mac App Store. И Apple отправила мне письмо по электронной почте, что мое приложение не поддерживает песочницу.

Как показано ниже:

Уважаемый разработчик!

Мы обнаружили одну или несколько проблем с вашей недавней доставкой для "InternetWorks". Чтобы обработать вашу доставку, необходимо исправить следующие проблемы:

Изолированная среда приложения не включена. Следующие исполняемые файлы должны включать право "com.apple.security.app-sandbox" с логическим значением true в свойстве полномочий. список. См. Страницу «Песочница приложения» для получения дополнительной информации о «песочнице» вашего приложения.

InternetWorks.app/Contents/MacOS/InternetWorks

После исправления этих проблем перейдите на страницу сведений о версии и нажмите «Готово к загрузке двоичного файла». Продолжайте процесс отправки, пока статус приложения не станет «Ожидание загрузки». Затем вы можете доставить исправленный двоичный файл.

С уважением,

Команда App Store

Поскольку мое приложение написано на Python, я понятия не имею, как создать для него список свойств прав.

Из документации Apple, список свойств прав был создан внутри проекта Xcode и каким-то образом связан с исполняемым файлом. Но опять же, мое приложение было написано на Python, в нем всего лишь пара файлов * .py, и я упаковал его в исполняемый файл «my_app_name.app» с помощью инструментов py2app / cx_Freeze.

Итак, можно создать / создать файл списка свойств прав для моего уже упакованного приложения python (файл My_App_name.app) вручную, и как я могу сделать это без проекта XCode?

Заранее спасибо.


person handsomegui    schedule 17.04.2013    source источник


Ответы (1)


Для некоторого контекста интерфейс для настройки вашего .entitlements plist в xcode4 выглядит так:  скриншот .

Он автоматически создает в вашем $(SOURCE_ROOT) файл с именем AppName.entitlements.

.plists - это файлы XML, которые Apple использует почти для всего, что было бы текстовым файлом конфигурации в «традиционном» unix. Если вы разрабатываете Python для OS X, вам может оказаться полезным plistlib. . Благословенный способ Apple редактировать их - использовать сам XCode (до XCode4 был стенд -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, вы решите их проблему. Хотя вам может потребоваться запросить больше доступные разрешения.

person Lake    schedule 17.04.2013
comment
Спасибо за ответ. Это почти то же самое, что и я. Я, наконец, понял это, выполнив следующие шаги: \ n 1) Создайте файл InternetWorks-Entitlements.plist вручную; (да, это просто файл xml) 2) Выполните эту команду: codesign --entitlements ./InternetWorks-Entitlements.plist -s "My Cert here" ./InternetWorks.app В любом случае, я прохожу проверку. Все же разрешите поблагодарить вас. - person handsomegui; 18.04.2013