Accessibility API перестает работать после песочницы - PullRequest
5 голосов
/ 15 января 2012

Приложение My Mac использует API специальных возможностей для перемещения окна изменения размера (других приложений).

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

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

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

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

1 Ответ

6 голосов
/ 15 января 2012

Во-первых, к марту июню 2012 г. все приложения в Mac Apple Store должны быть помещены в «песочницу», согласно исследованию, которое я обнаружил. Не песочница не сможет защитить ваше приложение от будущего.

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

  1. Просмотрите список разрешений и посмотрите, сможете ли вы предоставить доступ к своему приложению через Права (способ предоставления Apple специальных привилегий для доступа к ключевым функциям, которые им понадобятся ). Вот пошаговое руководство по документации Apple о том, как вы можете проследить, какие права вы пропустили и, возможно, вам понадобится .
  2. Отправьте запрос об ошибке в Apple для конкретной функции, к которой вы хотите получить доступ. Кто знает, они могут фактически обновить свою кодовую базу, чтобы предоставить вам доступ.
  3. Подумайте о продаже приложения как продукта на сайте электронной торговли, а не о продаже в Mac Apple Store. Люди по-прежнему могут покупать и устанавливать ваше приложение на обычном веб-сайте (как это делали Versions, TextMate и другие замечательные приложения перед переходом на MAS), особенно если ваше приложение выполняет действия, которые невозможно найти на MAS.

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

Вот отрывок из их документации по подготовке приложения для песочницы :

Использование специальных API в вспомогательных приложениях

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

Вот отрывок из их документации по доступности в какао :

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

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

...