在最新的Xcode更新之后,我使用了很多第三方库,其中有许多警告 . (例如Facebook SDK pod)现在所有这些警告都显示在我想要查看我自己的警告或错误的地方的Xcode中 .
有没有办法忽略这些错误?修复它们无济于事,因为在每次“pod安装”之后,更改都会被丢弃 .
您可以在项目工作空间中的PodBundle的xcode构建设置中搜索“inhibit_all_warnings”,将值设置为“YES”,它将隐藏所有Pod文件警告 .
如果你对你的工作空间这样做,它也会隐藏你的所有项目 .
虽然this other answer将在构建阶段删除警告,但它似乎并未完全修复 Analyze 阶段(这导致我们的CI构建仍然存在问题) .
Analyze
除了接受的答案之外,对我有用的是:
单击Project Navigator中的 Pods 项目
Pods
选择实际 Pod- 目标并单击 Build Settings
Pod-
Build Settings
过滤短语 compiler flags
compiler flags
添加一个新的 Other C Flags ,其值为 -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core (或者您需要禁用的任何分析器) - this answer提供了要尝试的完整标志列表 - 请点赞它!
Other C Flags
-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core
但是,Xcode 6.3.1中的 clang 版本似乎不包含 insecureAPI ,因此您可以从该列表中删除它 . "current"完整列表是 -w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix
clang
insecureAPI
-w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix
请注意,在 Pods 项目或 Pods 目标上设置此项将不起作用 . 我不确定为什么,但你必须为每个实际的 Pod- 目标设置它 .
您还可以在per-file basis上设置编译器标志( -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core 等) .
我还尝试了其他几种方法(除上述方法外,可能需要也可能不需要) . 它们是在 Pods 项目本身上进行的 .
[1]
使用短语 analyzer 过滤
analyzer
确保 Analyze During 'Build' 设置为 NO .
Analyze During 'Build'
NO
将所有设置更改为 NO (包括 Improper Memory Management )
Improper Memory Management
[2]
使用短语 warnings 过滤
warnings
将 inhibit all warnings 更改为 YES
inhibit all warnings
YES
出于某种原因,即使禁用方案中的分析步骤似乎也不起作用 .
转到产品>方案>管理方案窗口,单击列表中的每个Pod- *,然后单击编辑按钮 . 单击左侧列表中的Build,然后取消选中Pod目标右侧的Analyze .
我仍然感到困惑,为什么我不能完全禁用Pods被分析,虽然我希望它可能与方案的构建设置中选中的“查找隐式依赖项”有关 . 但是,如果未经检查,则看起来应用程序需要将其他内容链接到pod .
添加到您的Podfile:
platform :ios # ignore all warnings from all pods inhibit_all_warnings! # ignore warnings from a specific pod pod 'FBSDKCoreKit', :inhibit_warnings => true
然后执行: pod install
pod install
3 回答
您可以在项目工作空间中的PodBundle的xcode构建设置中搜索“inhibit_all_warnings”,将值设置为“YES”,它将隐藏所有Pod文件警告 .
如果你对你的工作空间这样做,它也会隐藏你的所有项目 .
虽然this other answer将在构建阶段删除警告,但它似乎并未完全修复
Analyze
阶段(这导致我们的CI构建仍然存在问题) .除了接受的答案之外,对我有用的是:
单击Project Navigator中的
Pods
项目选择实际
Pod-
目标并单击Build Settings
过滤短语
compiler flags
添加一个新的
Other C Flags
,其值为-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core
(或者您需要禁用的任何分析器) - this answer提供了要尝试的完整标志列表 - 请点赞它!但是,Xcode 6.3.1中的
clang
版本似乎不包含insecureAPI
,因此您可以从该列表中删除它 . "current"完整列表是-w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix
请注意,在
Pods
项目或Pods
目标上设置此项将不起作用 . 我不确定为什么,但你必须为每个实际的Pod-
目标设置它 .您还可以在per-file basis上设置编译器标志(
-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core
等) .我还尝试了其他几种方法(除上述方法外,可能需要也可能不需要) . 它们是在
Pods
项目本身上进行的 .[1]
使用短语
analyzer
过滤确保
Analyze During 'Build'
设置为NO
.将所有设置更改为
NO
(包括Improper Memory Management
)[2]
使用短语
warnings
过滤将
inhibit all warnings
更改为YES
出于某种原因,即使禁用方案中的分析步骤似乎也不起作用 .
转到产品>方案>管理方案窗口,单击列表中的每个Pod- *,然后单击编辑按钮 . 单击左侧列表中的Build,然后取消选中Pod目标右侧的Analyze .
我仍然感到困惑,为什么我不能完全禁用Pods被分析,虽然我希望它可能与方案的构建设置中选中的“查找隐式依赖项”有关 . 但是,如果未经检查,则看起来应用程序需要将其他内容链接到pod .
添加到您的Podfile:
然后执行:
pod install