2012-06-07 3 views
3

Для приложения, над которым я работаю, я использую CGEventPost, чтобы опубликовать некоторые ключевые события, и я заметил, что он прекратил работать с изолированной песочницей, даже включил режим «Включить доступ для вспомогательных устройств».Может ли Mac App Store использовать Sandboxed приложения CGEventPost?

Есть ли право разрешать использование CGEventPost? Или, есть ли другой способ опубликовать ключевые события с приложениями, представленными в Mac App Store?

ответ

6

Может ли Mac App Store использовать в песочнице приложения CGEventPost?

No.

Есть ли право на CGEventPost? Или есть способ опубликовать ключевые события с приложениями, представленными в Mac App Store?

No.

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

Если у вас есть более конкретная необходимость, которую вы можете оправдать (а не «размещать некоторые ключевые события», но «заставить iPhoto делать до XXX, что, насколько мне известно, может быть сделано только путем публикации события YYY на нем») подать отчет об ошибке и опубликовать поток на форумах dev.

Это будет делать две вещи:

  1. Кто-то в компании Apple может предложить обходной путь - возможно личное одно, что никто не может сказать вам, и/или тот, который обычно не разрешено на App Store, но будут приняты, если вам сказали использовать его.
  2. Это увеличивает вероятность того, что Apple придумает лучший способ сделать то, что вы хотите в будущем.
2

Старый вопрос, но принятый ответ неправильный. В Mac App Store есть приложения, которые используют CGEventPost для имитации событий. Например, приложения «Удаленная мышь» и «Мобильный мышиный сервер» делают это. Они могут отправлять входные данные в любое другое приложение и на основе символов в тех приложениях, которые они явно используют с помощью функции CGEventPost. Я хотел бы знать, как они это делают.

+3

Если вы загрузите оба указанных вами приложения, вы увидите, что они не изолированы. Я предполагаю, что они отправили их в apple до того, как Sandboxing был применен и только что отправил исправления ошибок с тех пор (что разрешено в отношении правил песочницы Apple). Поэтому я предполагаю, что они используют CGEventPost, что запрещено для любого нового приложения в Mac App Store. Я отправил по электронной почте создателей, хотя на всякий случай, чтобы посмотреть, что они делают. – xizor

+0

Спасибо за разъяснение. Таким образом, правила не одинаковы для всех приложений. – superg

+1

Песочница не требуется до 1 июня 2012 года. Любое приложение, отправленное после этой даты, должно быть изолировано. Любое приложение до этой даты может оставаться в App Store в режиме без песочницы, но только исправления ошибок могут быть отправлены в Apple. Им не разрешается выполнять какие-либо обновления функций. – xizor