iOS中使用私有API的例外情况是什么?

3
我的公司计划开发一款iOS应用程序,需要使用私有API才能运行 - 实际上,使用这些API是该程序的全部基础(出于商业原因,我故意不透露细节)。
我的问题是,如果我们解释情况,是否有可能苹果允许我们的应用程序获得例外批准,即使使用这些私有API?我相信我们有非常合理的理由请求例外功能,所以我想了解有哪些例外已经被允许使用私有API规则,并提供详细信息,以便我们更好地了解苹果可能会做出什么样的决定。谢谢。

你确定除了使用私有API之外没有其他实现你想要的方式吗?或许你可以在这里询问,看看是否有你未曾考虑过的替代方案。 - Brad Larson
我所知道的唯一明确的例外是针对谷歌的。其他人暂时被允许通过,但后来成为拒绝的理由,因为他们为所有人开放了新的API(如果您向苹果提出了一个很好的理由,这可能会发生在您想要的API上)。 - hotpaw2
2个回答

4

这完全有可能,但极不可能。他们为UIGetScreenImage()做了一个例外;但那是因为有很多开发者已经为此提交了radars。

我建议您为增强功能提交高质量的radars,解释您想要什么以及原因。另外,也许考虑使用DTS找出是否有替代方法,或者他们是否能够获得授权。


1
即使在公共API引入了大部分(但不是全部)其功能的情况下,UIGetScreenImage()也再次被设为私有。提出增强请求,让其他人提交这些请求的副本,并希望在即将推出的版本中得到改进是继续前进的最佳方式。苹果很少对这样的规则做出例外,即使这样做,也往往只针对像谷歌这样的特定公司。 - Brad Larson
1
UIGetScreenImage被重新设为私有,因为主函数已经成为公共API。带有大量有用信息和意图信息的增强请求是前进的方法。这带来了另一个好处,即使他们在此版本中允许您使用异常,下一个版本被拒绝也不要感到惊讶。 - MCannon

4
我要诚实地告诉你:不行。如果你想将这个应用放到应用商店上,不行。
你可能会想知道我怎么这么确定:我曾经与运营iPhone的运营商合作过,并且我曾经与苹果有工作关系的大公司合作过(也就是说,你可以和苹果的高层人员交流)。如果苹果不允许运营商使用私有API,他们也不会允许你这样做。一个“合法”的私有API用途可能是将最近的通话信息放入运营商提供的账户应用程序中。这很有用,对吧?而且运营商已经拥有这些信息,所以没有问题了吧?不是这样的。这是一个大问题。苹果根本不允许这样做。你必须从其他地方获取它(例如通过运营商自己的数据库)。
现在没有例外情况,目前应用程序在提交后立即进行静态分析。如果你调用私有API,你的应用程序几乎肯定会被静态分析器自动拒绝。它甚至不会经过手动审核。
如果你想在应用商店上分发,现在没有例外情况,因为代码得到了静态分析。
换句话说:如果苹果为你的应用程序做出了例外,他们就必须为每个应用程序做出例外。然后你的独特卖点就不再独特了。
很抱歉我不能给你一个更积极的答案,但我是根据经验说话的!

有些人可以得到异常,但这非常困难。话虽如此,您也可以尝试使用NSInvocation和nsstrings来愚弄静态分析器。 - michael
如果您能够获得静态分析的例外,我会感到惊讶。我曾经为一些大公司开发应用程序,在其中我们确实获得了例外(针对内容规则),尽管这是可能的。这是您自己的经验吗? - lxt
1
是的,这是我自己的经验,但我不想详细说明。 - michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接