5

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

我想将我的应用程序提交到 MAS(Mac App Store)。我已经读过,必须向 MAS 提交应用程序才能打开沙盒。

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

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

提前致谢。

4

1 回答 1

6

首先,根据我发现的研究,到 2012 年 6 月,Mac Apple Store 上的所有应用程序都将被要求进行沙盒化不是沙盒不会让您的应用程序面向未来。

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

  1. 查看权利列表看看您是否可以通过权利授予您的应用程序访问权限(Apple 允许应用程序特殊权限访问他们需要的关键功能的方式)。这是 Apple 文档中有关如何通过堆栈跟踪您缺少和可能需要的权利的演练
  2. 针对您想要访问的特定功能向 Apple 提交错误请求。谁知道呢,他们实际上可能会更新他们的代码库以允许您访问。
  3. 考虑将应用程序作为产品在电子商务网站上销售,而不是在 Mac Apple Store 上销售。人们仍然可以在常规网站上购买和安装您的应用程序(正如 Versions、TextMate 和其他出色的应用程序在使用 MAS 之前所做的那样),特别是如果您的应用程序执行在 MAS 上找不到的事情时。

如果您查看文档,您会发现它明确声明您不能对辅助应用程序进行沙箱处理。

以下是他们关于为 Sandbox 准备应用程序的文档的摘录

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

使用 App Sandbox,您可以并且应该启用您的应用程序的可访问性,如可访问性概述中所述。但是,您不能对屏幕阅读器等辅助应用程序进行沙箱处理,也不能对控制另一个应用程序的应用程序进行沙箱处理。

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

注意:使用 App Sandbox,您可以并且应该启用您的应用程序的可访问性,如本文档中所述。但是,您不能对屏幕阅读器等辅助应用程序进行沙箱处理,也不能对控制另一个应用程序的应用程序进行沙箱处理。

这听起来有点像双说:您应该使您的应用程序可访问,但是您不能沙箱化助手应用程序......

于 2012-01-15T16:23:52.807 回答