我正试图通过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支持部门确认,这是iTunes Connect的问题,而不是我的项目的问题。对于遇到同样问题的人,我最好的建议是等待,稍后再试。
我也遇到了同样的问题。我无法提交我的一些应用程序,因为使用了非公共选择器。我也尝试使用应用程序加载器,但仍然是相同的错误消息
为了解决这个问题,我安装了Xcode 6.0.1-它仍然可以在这里下载:https://developer.apple.com/downloads/index.action
在安装之前,我将旧的Xcode移到了垃圾桶中。
我现在可以提交任何应用程序。
我通过以下操作解决了这个问题:
编辑:我认为不需要第一步
1)清理构建文件夹(按住Alt,单击产品->清理)
2) 删除派生数据(Organizer->Projects->Select your project->Delete Derived Data
API在iOS 7和iOS 8之间有所不同。我通过切换到使用XCode 6.1构建的部署目标"8.0"来验证我的应用程序。这可能不是你们所有人的解决方案,但你们可以尝试一下。
可能发生在我身上,因为我最近开始使用UIAlertController->似乎是iOS-8功能。在iOS 7上,这将是UIAlertView。因此,如果你使用一些漂亮的新功能,它们可能在以前的iOS版本中不可用,因此是非公共的API。
对于同一个应用程序,我今天在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共存。
我删除xcode项目的所有派生数据/用户/{user_home_folder}/库/开发人员/Xcode/DerivedData应用程序提交时没有任何问题
我遇到了同样的问题,看起来像是苹果方面的问题。我昨天提交了同样的应用程序(v1.0.1),然后拒绝了它,今天又提交了一次,只差一行代码。由于上述原因,今天的提交被拒绝。
我能够通过更改我的应用程序的版本号(例如1.0.1->1.0.2),使用所有东西的最新版本来解决这个问题。我认为这是有效的,因为我之前提交的旧版本YMMV被我拒绝了。