Mac App Store:规避沙盒要求

Posted

技术标签:

【中文标题】Mac App Store:规避沙盒要求【英文标题】:Mac App Store: circumvent sandbox requirement 【发布时间】:2014-03-30 23:14:00 【问题描述】:

正如互联网上的许多来源所说,您需要将您的应用沙盒化才能将其部署到 App Store。

此外,根据this,沙盒时无法使用可访问性api(AXUIElement.h)。

然而,一些应用似乎仍然使用这个 api。这些应用程序之一是 Cinch。在 Cinch 的安装过程中,您需要授予 Cinch 使用辅助功能 API 的权限,所以很明显他们正在使用此 API。

使用以下命令从应用商店中检出二进制文件后:

codesign --display --entitlements - /Applications/Cinch.app

该应用似乎没有被沙盒化:

Executable=/Applications/Cinch.app/Contents/MacOS/Cinch

(输出中的唯一行)。

所以我的问题是,如何规避这个要求。您是否需要与 Apple 谈判才能实现这一目标?有特殊规定吗? 你需要贿赂工作人员吗?还是我的终端命令有误?

【问题讨论】:

【参考方案1】:

Irradiated 于 2011 年将 Cinch 提交到 App Store,然后才需要沙盒,此后没有进行任何实质性更新。一旦他们添加了新功能或特性,他们就需要对应用程序进行沙盒处理。

Apple 于 2012 年 2 月致函开发者:

从 2012 年 6 月 1 日开始,如果您在 Mac App Store 上拥有未沙盒化的现有应用程序,您仍可以提交错误修复更新而不对您的应用程序进行沙盒化。此外,如果您有技术问题阻止您在 6 月 1 日之前对您的应用进行沙盒化,请告诉我们。

2012 年 5 月:

如果您在 Mac App Store 上拥有未沙盒化的现有应用,您仍可以在 6 月 1 日之后提交错误修复更新。

【讨论】:

【参考方案2】:

App Store 中的应用没有被沙盒化是相当令人惊讶的。

如果您不开发竞争应用程序,也许您可​​以直接与他们联系。也许他们会告诉你他们是如何做到的。您也可能会在更短的时间内得到答案,因为(至少在我看来)没有多少开发人员会这样做。

http://www.irradiatedsoftware.com/about/

【讨论】:

以上是关于Mac App Store:规避沙盒要求的主要内容,如果未能解决你的问题,请参考以下文章

Mac App Store 登录中的沙盒用户更改

10.7.3 之前的 Mac App Store 沙盒和处理安全范围的书签

关于App Sandbox

沙盒用户:此 Apple ID 尚未在 App Store 中使用

使用沙盒购买 Apple In App 时出现错误,因为“您的帐户已在 App Store 和 iTunes 中被禁用”

您可以在提交应用程序或相关 IAP 之前使用 App Store 沙盒测试(特别是verifyReceipt)吗?