沙盒后,辅助功能API停止工作

Azp*_*iri 5 cocoa sandbox accessibility-api mac-app-store

我的Mac App使用辅助功能API来移动(其他应用程序的)调整大小窗口.

我想将我的应用程序提交给MAS(Mac App Store).我已经读过要向MAS提交应用程序必须打开沙盒.

当我打开沙盒时,我的代码无法通过辅助功能API找到焦点窗口(始终返回NULL).问题是:辅助功能API不能与沙盒一起使用?

我注意到Mac App Store中有应用程序使用辅助功能API,现在不是强制沙盒吗?

提前致谢.

Dom*_*edi 6

首先,到2012年3月 6日,Mac Apple Store上的所有应用程序都需要使用Sandboxed,这是我发现的研究结果.不是沙盒不会让您的应用程序面向未来.

其次,我发现了你可以考虑的3种策略:

  1. 查找权利列表,看看您是否可以通过权利授予您的应用访问权限(Apple的方式允许应用程序特权访问他们需要的关键功能).以下是Apple的文档,介绍如何通过堆栈跟踪您丢失和可能需要的权利.
  2. 向Apple提交有关您要访问的特定功能的错误请求.谁知道,他们实际上可能会更新他们的代码库以允许您访问.
  3. 考虑将应用程序作为电子商务网站上的产品销售,而不是在Mac Apple Store上销售.人们仍然可以在常规网站上购买和安装您的应用程序(例如,在继续运行MAS之前,版本,TextMate和其他精彩应用程序已经完成),特别是如果您的应用程序执行了无法在MAS上找到的内容.

如果您查看文档,您会发现它明确声明您不能沙盒辅助应用程序.

以下是他们为准备沙盒应用程序的文档摘录:

在辅助应用程序中使用辅助功能API

使用App Sandbox,您可以并且应该启用应用程序的可访问性,如"辅助功能概述"中所述.但是,您无法对辅助应用程序(如屏幕阅读器)进行沙箱处理,也无法对控制其他应用程序的应用程序进行沙箱处理.

以下是他们关于Cocoa中的可访问性的文档摘录:

注意:使用App Sandbox,您可以并且应该启用应用程序的可访问性,如本文档中所述.但是,您无法对辅助应用程序(如屏幕阅读器)进行沙箱处理,也无法对控制其他应用程序的应用程序进行沙箱处理.

这听起来有点像双语:你应该让你的应用程序可以访问,但你不能沙盒助理应用程序...