Accessibility API stops working after sandboxing

大城市里の小女人 提交于 2019-12-06 03:31:19

问题


My Mac App uses accessibility API to move an resize window (of other apps).

I would like to submit my app to the MAS (Mac App Store). I have read that to submit an app to the MAS is mandatory to turn on sandboxing.

When I turn on the sandboxing my code can´t find the focused window through the accessibility API (always return NULL). The question is: the accessibility API can´t be used with sandboxing?

I notice that there are applications in the Mac App Store that uses accessibility API, is not mandatory sandboxing by now?

Thanks in advance.


回答1:


First, by March June, 2012, all Apps on the Mac Apple Store will be required to be Sandboxed, from the research I've found. Not Sandboxing isn't going to future-proof your app.

Second, I've found 3 strategies that you may consider:

  1. Look up the list of entitlements, and see if you can grant your app access via the Entitlements (Apple's way of allowing Apps special privileges to access key features they'lll need). 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. Submit a bug request to Apple on the specific feature you want access to. Who knows, they may actually update their codebase to allow you access.
  3. Consider selling the app as a product on an e-commerce site, and not selling on the Mac Apple Store. People can still buy and install your app on a regular website (as Versions, TextMate, and other wonderful applications have done before going on MAS), especially if your application does things that can't be found on the MAS.

If you look at the documentation, you'll find that it explicitly states you cannot sandbox an assistive app.

Here's an excerpt from their documentation on preparing an App for Sandbox:

Use of accessibility APIs in assistive apps

With App Sandbox, you can and should enable your app for accessibility, as described in Accessibility Overview. However, you cannot sandbox an assistive app such as a screen reader, and you cannot sandbox an app that controls another app.

Here's an excerpt from their documentation on Accesibility in Cocoa:

Note: With App Sandbox, you can and should enable your app for accessibility, as described in this document. However, you cannot sandbox an assistive app such as a screen reader, and you cannot sandbox an app that controls another app.

It sounds a bit like double-speak: you should enable your app to be Accessible however you cannot sandbox an assistant app...



来源:https://stackoverflow.com/questions/8871185/accessibility-api-stops-working-after-sandboxing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!