App中的非公开选择器?

时间:2014-10-20 23:52:14

标签: ios xcode swift itunesconnect

我试图通过iTunes Connect提交应用。 Xcode抛出以下错误:

iTunes Store操作失败。 该应用引用了Payload / Inflation Calculator.app/Inflation中的非公开选择器Calculator: allocBatch:withEntity:count:,allowWithEntity:, fastIndexForKnownKey:indexForKey:

我不知道" non-public selectors"我会使用,因为我的代码与书非常接近。有人有什么想法吗?

视图控制器的代码(我的应用中只有.swift): https://gist.github.com/Calda/aefc2f19bae5f3cf2e54

编辑:作为未来的参考,我向iTunes Connect Support确认这是iTunes Connect的一个问题,而不是我的项目有问题。对于遇到同样问题的人,我最好的建议是等待,稍后再试。

6 个答案:

答案 0 :(得分:7)

我遇到了同样的问题。我无法提交我的一些应用程序,因为使用非公共选择器。我也尝试使用Application Loader,但仍然是相同的错误消息

要解决我安装Xcode 6.0.1的问题 - 它仍可在此处下载: https://developer.apple.com/downloads/index.action

在安装之前,我将旧的Xcode移到了垃圾箱。

我现在可以提交任何应用。

答案 1 :(得分:2)

对于同一个应用程序,我今天在XCode 6.1上收到了此错误。 我提交相同的应用程序(小变化)2/3天前使用XCode 6.0.1没有任何错误! 刚刚更新了XCode 6.1并遇到了这个错误。

我切换回XCode 6.0.1,它对提交没有任何问题。没有非公共API使用错误。我只需下载dmg文件并将xcode.app重命名为XCode_6.0.1。所以它与XCode 6.1共存。

答案 2 :(得分:2)

iOS 7和iOS 8之间的API不同。 我通过切换到部署目标" 8.0"来验证我的应用程序。 - 使用XCode 6.1构建。 它可能不是你所有人的解决方案,但你可以尝试一下。

可能发生在我身上,因为我最近开始使用UIAlertController - >似乎是一个iOS-8功能。在iOS 7上,这将是UIAlertView。因此,如果你使用一些漂亮的新功能,它们可能不适用于以前的iOS版本 - 因此是非公共API。

答案 3 :(得分:2)

我删除了xcode项目的所有派生数据 /用户/ {} user_home_folder /资源库/开发/ Xcode中/ DerivedData 并且提交的应用程序没有任何问题

答案 4 :(得分:2)

我通过以下方式解决了这个问题:

编辑:我认为不需要第一步

1)清理构建文件夹(按住Alt,单击产品 - >清除)

2)删除派生数据(管理器 - >项目 - >选择项目 - >删除派生数据

答案 5 :(得分:1)

我遇到了同样的问题,这个问题看起来像Apple的问题。我昨天提交了相同的应用程序(v 1.0.1),然后拒绝了它,然后今天再次提交了一行代码差异。由于上述原因,今天的提交被拒绝了。

通过更改我的应用版本#(例如1.0.1 - > 1.0.2),我能够使用所有版本的最新版本来解决这个问题。认为这是有效的,因为我之前提交了我拒绝的旧版本的队列,YMMV。