将应用程序上传到Mac商店时,生成的API分析过大

我要上传我的第一个mac应用程序到Apple Store

并修复了图标,类别的所有validation错误…

但之后,我通过了validation,并警告:

The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message. 

而我的上传被拒绝的原因是:“无效的二进制”
有没有人有这种情况下的经验?


更新:这个警告不是拒绝的原因,也可能是应用程序的归档问题。 我成功发布了我的应用程序来存储。

所以,我们可以放心地忽略这一点。

苹果公司禁止在iOS应用程序中使用私人或未公开的API。 您对与私有或未logging的API方法同名的方法所做的任何调用都将被标记为私有API使用,即使被调用的方法是您自己定义的。

App Loader执行初始扫描,检查方法名称,实例variables访问,甚至@私有方法名称的select器使用情况。 应用程序加载器并不总是做得很好,而且越多的源代码文件就越有可能向您提供它生成的API分析文件的警告“太大”。

幸运的是,尽pipe有警告,您仍然可以提交您的申请。 苹果会在内部检查它,如果由于名称重叠而导致某些事情被踢回来,那么您将不得不再次参与审查过程。

Erika Sadun试图制作一个名为API Kit的应用程序,可以为你扫描,但似乎已经放弃了她的工作,并从她的网站上删除了任何应用程序的痕迹。

Chimp工作室创造了App Scanner来做同样的事情,但是自2011年以来它一直没有更新。不幸的是,对于大型项目 – 这包括来自CocoaPods的许多额外的豆荚的项目 – 目前没有(2014年)好除了主动命名事物,以免它们与私有API方法和实例名称冲突之外,解决这个问题的方法。

您可以主动了解苹果的cocoa命名约定,并尝试预测。 这将减less未来的头痛。 但是,直到苹果引入类似命名空间之类的东西之后,我们可能会不时遇到这个问题。

“无效二进制”错误可能来自许多原因,但与App Loader创build的API分析文档完全无关。

你应该知道,即使扫描,仍然有办法绕过禁止使用私人/无证API。 🙂

在我的第一个Swift项目中第一次触及这个问题后,看起来这个问题最常见的答案是:

如果你使用Swift 2.x和XCode 7,你会得到这个错误。 只要忽略它。

[更新:XCode 7.3和iOS 9.3的推出似乎已经解决了这个问题!]

这是一个简单的方法来解决它们…存储select器名称反向,如“dlroWolleH”,然后调用该方法之前反转string。

如果苹果明智的话,那么你可以encryption它们。