更新到 Xcode 10.2.1 后出现数百条警告。发布到 App Store 还可以吗?

Posted

技术标签:

【中文标题】更新到 Xcode 10.2.1 后出现数百条警告。发布到 App Store 还可以吗?【英文标题】:hundred of warnings after update to Xcode 10.2.1. is it still OK to be published to App store? 【发布时间】:2019-04-24 14:10:13 【问题描述】:

我很恐慌。我是编程和 ios 开发的新手。明天我计划将我的应用程序发布到我公司的应用程序商店。但是今天早上我将我的 iPhone 更新到 iOS 12.2,并且我必须将我的 Xcode 更新到 10.2.1 以使 Xcode 可以在我的真实设备上运行我的应用程序。

但我收到了数百条如下图所示的警告。不幸的是,我还坚持将 iPhone 上的 iOS 降级到 12.1.4。所以看来我仍然必须在我的 iPhone 上使用 Xcode 10.2.1 和 iOS 12.2。我的 Xcode 上有超过 250 条警告:

即使几乎所有的警告都是:

警告:public' 修饰符对于在中声明的实例方法是多余的 公共扩展

我可以毫无问题地运行我的应用程序。但我选择不修复警告并保留'转换为 Swift 5 可用' 以及 '更新到推荐设置'

因为它会对我的 firebase Pod 产生错误,并且我无法运行我的应用程序。所以我的问题是......

我仍然可以将我的应用发布到应用商店并在用户的真实设备上运行而不会出现问题吗?因为我选择不修复警告并保留 'Conversion to Swift 5 is available' 以及 'update to推荐设置' ,但它仍然可以正常工作模拟器。我担心苹果会拒绝我的应用,因为我没有修复“可以转换为 Swift 5” 以及 “更新到推荐设置” 警告

【问题讨论】:

关于“public”冗余的警告不应导致任何运行时问题。我猜不出其他人。 您应该存档并尝试提交您的应用程序,当上传开始时,它会验证构建,并且如果它验证并继续上传然后在那里您将收到警告错误,Apple 不能容忍提交审核和发布应该不是问题。希望对您有所帮助! 将来,不要在计划发布的前一天更新构建工具。此类更新需要对您的整个应用进行全面的回归测试,以确保没有新问题。 @Rob 我仍然可以在不升级 Xcode 的情况下在 iOS 12.2 上运行该应用程序吗? Xcode 最低版本是多少? @Rob 非常感谢您提供的信息。由于这些警告,我担心我的代码不再有效且不可容忍。我明天试试提交。 【参考方案1】:

关于更新 Xcode 以便您可以在您的设备上运行它的决定,事实证明这可能是不必要的。很大程度上,无论您使用哪种 Xcode 版本,您通常都可以在运行更现代 iOS 版本的设备上手动安装应用程序。您将无法通过旧版本 Xcode 的调试器运行它。请参阅https://***.com/a/35044362/1271826,其关于安装的基本概念至今仍然适用。

综上所述,最低 Xcode 版本的选择由 Apple 的 App Store 指南决定。请参阅this March 2019 guideline,它表示应用程序必须使用 iOS 12.1 SDK 或更高版本。并注意Apple Developer News 提要,因为这些最低 SDK 要求会随着时间而变化。

关于警告,它们不会成为提交的问题。 Apple 没有你的源代码,也没有接触到你收到的编译时警告。问题是这些警告确实在告诉您“某某可能是个问题”的重要和有用的东西,这就是为什么最好解决所有这些问题。如果不查看您收到了哪些警告,我们无法评论哪些警告非常重要,哪些不重要。

但我建议你:

确保您安装的 Xcode 版本支持Apple Developer News 提要中列出的最低 SDK 版本;和 在时间允许的情况下,真诚地努力解决尽可能多的警告。

在撰写本文时,the minimum SDK version is 12.1。但请留意that feed,因为最低要求会定期更新,但通常会提前发出警告。

【讨论】:

以上是关于更新到 Xcode 10.2.1 后出现数百条警告。发布到 App Store 还可以吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode8/Swift 3 更新后缺少 Firebase 标头警告

观察更新到 xcode 10.2.1 后数据库功能不起作用

奇怪的 Xcode 警告在导入上方弹出

NPM CI 和 Bluebird 承诺警告

升级到 xCode 4 后,我收到数百万个“此类不符合键值编码”错误

RestKit 更新到 xcode 4.4.1 后的警告