Xcode 不再显示@available 警告

Posted

技术标签:

【中文标题】Xcode 不再显示@available 警告【英文标题】:Xcode not showing @available warnings anymore 【发布时间】:2021-06-28 11:57:12 【问题描述】:

Xcode 不再对应用程序在所有支持的 ios 版本上不可用的属性或方法发出警告。这对我来说是一个严重的问题,可能会导致某些 iOS 版本出现错误或应用崩溃。

例如,[NSDate now] 方法仅适用于 iOS 13 及更高版本。在 iOS 12 设备上使用此方法会导致崩溃。我的应用程序项目的当前 iOS 部署目标设置为 iOS 12.0,并且该应用程序也支持 iOS 12 以上的所有版本。但由于某种原因,如果我使用不可用的方法或属性,我不会再收到警告在 iOS 12 上且仅在上述版本上。

我使用的是 Xcode 12.5。我也尝试过使用 Xcode 12.4 和 Xcode 13 Beta,但它是一样的。这是项目的问题吗?

【问题讨论】:

在一个新项目上,你能重现这个问题吗?如果没有,请检查Build Settings,那里有一些警告标志管理。检查工作和非工作之间是否存在差异。或者你有什么地方#pragma clang diagnostic ignored?哪个可能没有完成pop 构建设置中的“Apple Clang - 警告 - 所有语言”类别有“无人看管的可用性”选项。它被设置为“否”。在我将其设置为是并重建项目后,我再次收到警告。谢谢! 【参考方案1】:

前往Build Settings,您可以在搜索栏搜索Unguarded availability,或在Apple Clang - Warnings - All Languages部分找到。

将值设置为Yes

【讨论】:

以上是关于Xcode 不再显示@available 警告的主要内容,如果未能解决你的问题,请参考以下文章

Xcode解决代码高亮语法提示错误警告等功能失效的解决方法

Xcode 7.3 - 警告未显示且无法搜索项目

用户创建的警告在 XCode 7.1 中不再起作用。有替代方案吗? [复制]

iPhone真机运行App提示“不再可用“(No Longer Available)的原因及解决

iPhone真机运行App提示“不再可用“(No Longer Available)的原因及解决

未显示情节提要警告