8

OS X 有一个不错的功能,例如 Accessibility API,它允许从您的应用程序代码中控制一些系统元素和其他应用程序。但是打开沙盒后它就停止工作了。必须将应用程序提交到商店才能打开沙盒。

苹果是这么说的:

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

但是 App Store 有一些使用 Accessibility API 的应用程序:

  • Cinch – 调整窗口大小
  • BetterSnapTool - 相同
  • PopClip – 获取选中的文本

所以这意味着可以同时使用 Sandbox/Accessibility API/App Store,但是如何呢?

4

2 回答 2

10

几年前,在 OS X 沙箱中无法使用辅助功能 API,但这可能已经改变。然而,更有可能的是,这些应用程序设法从 Apple 获得了一个特殊例外,并且它们具有额外的沙盒权利,这些权利将它们部分地从沙盒中分离出来,足以让它们使用可访问性 API。

你应该做的是首先通过 bugreporter.apple.com 提交一个错误,告诉你想要对可访问性做什么以及为什么,并要求他们给你一个沙盒异常。如果他们批准例外,他们可能会给您一些自定义的沙箱配置文件语言代码,使您可以从(有些削弱的)沙箱内调用可访问性 API。

话虽如此,根据您正在做的事情,如果 Apple 说:“抱歉,该应用程序不适合应用商店模型。请使用开发人员 ID 签署您的应用程序并禁用沙盒,然后将其分发到外部商店。”

于 2015-08-23T05:13:05.867 回答
8

所有这些应用程序都在 2012 年实施沙盒之前在 App Store 上架。我自己的 HazeOver 应用程序也是如此。它只能使用可访问性,因为它还没有被沙盒化。Apple 允许更新这些应用程序,但他们不会接受任何没有沙盒的新应用程序。

于 2015-08-27T11:30:54.887 回答