2012-01-15 1 views
4

В моем приложении Mac для доступа к окну изменения размера (других приложений) используется API доступности.API Accessibility перестает работать после песочницы

Я хотел бы отправить свое приложение в MAS (Mac App Store). Я прочитал, что отправить приложение в MAS обязательно, чтобы включить песочницу.

Когда я включаю песочницу, мой код не может найти сфокусированное окно через API доступности (всегда возвращайте NULL). Вопрос в том, что API доступности нельзя использовать с песочницей?

Я заметил, что есть приложения в Mac App Store, которые используют API доступности, не является обязательной песочницей к настоящему времени?

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

ответ

6

Во-первых, Март Июнь, 2012 г. Все приложения на Mac Apple Store будут обязаны быть Sandboxed, из исследования, которое я нашел. Not Sandboxing не собирается в будущем доказывать ваше приложение.

Во-вторых, я нашел 3 стратегии, которые вы можете рассмотреть следующие вопросы:

  1. Look up the list of entitlements и see if you can grant your app access via the Entitlements (путь от Apple позволять приложения особых привилегий для доступа к основным функции they'lll потребности). Here's a walk-through via Apple's documentation on how you can stack-trace through which entitlements you're missing and might need.
  2. Отправьте запрос об ошибке в Apple по конкретной функции, к которой вы хотите получить доступ. Кто знает, они могут реально обновить свою кодовую базу, чтобы вы могли получить доступ.
  3. Рассмотрите возможность продажи приложения как продукта на сайте электронной коммерции, а не продажи в Mac Apple Store. Люди могут все еще покупать и устанавливать ваше приложение на обычном веб-сайте (как Версии, TextMate и другие замечательные приложения, которые были сделаны до перехода на MAS), особенно если ваше приложение делает вещи, которые не могут быть найдены на MAS.

Если вы посмотрите на документацию, вы обнаружите, что она явно заявляет, что вы не можете изолировать вспомогательное приложение.

Вот excerpt from their documentation on preparing an App for Sandbox:

Использование доступности API, в вспомогательных программах

С App Sandbox, вы можете и должны включить свое приложение для доступности, как описано в Accessibility Обзор. Тем не менее, вы не можете использовать вспомогательное приложение , такое как устройство чтения с экрана, и вы не можете изолировать приложение, которое управляет другим приложением.

Вот excerpt from their documentation on Accesibility in Cocoa:

Примечание: С помощью App Sandbox, вы можете и должны включить приложение для доступности, как описано в данном документе. Тем не менее, вы не можете использовать песочницу для вспомогательного приложения, например, программу для чтения с экрана, и вы не можете использовать приложение, которое управляет другим приложением.

Это звучит немного как двойные говорят: вы должны включить приложение, чтобы быть Доступной однако вы не можете песочницу приложения помощника ...

+0

Спасибо за ваш ответ Доминик. Так что я не могу изолировать свое приложение, потому что он управляет окнами других приложений? И мне нужно изолировать мое приложение, если я хочу отправить его в MAS? Как возможно, что в MAS есть приложения, такие как Divvy или Breeze, которые используют API доступности, если песочница является обязательной? – Azpiri

+0

Еще раз спасибо Доминик, ваш очень быстрый ответ. Я попытался активировать все права, и он не работает. Я попытаюсь связаться с поддержкой Apple завтра с просьбой о решении ... – Azpiri

+0

Интересно, что произойдет с приложениями в MAS, которые не могут быть изолированы в первом марше 2012 года ... – Azpiri

 Смежные вопросы

  • Нет связанных вопросов^_^