【问题标题】:How to use Accessibility with sandboxed app?如何将辅助功能与沙盒应用程序一起使用?
【发布时间】:2015-08-20 10:42:53
【问题描述】:

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

Apple 是这么说的:

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

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

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

也就是说,Sandbox/Accessibility API/App Store 可以一起使用,但是怎么用呢?

【问题讨论】:

    标签: objective-c macos cocoa sandbox accessibility-api


    【解决方案1】:

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

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

    话虽如此,根据您的操作,如果 Apple 说“抱歉,该应用不适合应用商店模型。请使用禁用沙盒的开发者 ID 为您的应用签名,并且分发到店外。”

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      相关资源
      最近更新 更多