在最新的Xcode更新之后,我使用了很多第三方库,其中有许多警告。 (例如Facebook SDK pod) 现在,所有这些警告都显示在我希望看到自己的警告或错误的地方的Xcode中。使用Cocoapods时忽略Xcode警告
有什么办法可以忽略这些错误吗?修复它们将无济于事,因为每次“pod安装”之后都会放弃更改。
在最新的Xcode更新之后,我使用了很多第三方库,其中有许多警告。 (例如Facebook SDK pod) 现在,所有这些警告都显示在我希望看到自己的警告或错误的地方的Xcode中。使用Cocoapods时忽略Xcode警告
有什么办法可以忽略这些错误吗?修复它们将无济于事,因为每次“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
你可以搜索你的项目的工作空间,在PodBundle的Xcode的构建设置“inhibit_all_warnings”的值设置为“是“,它会隐藏您的所有Pod文件警告。
如果你在工作空间中使用它,它也会隐藏你的所有项目。
这是一个更简单的解决方案,将其设置在pod项目上,仅禁用与pod相关的警告,而不是您的项目警告。无需重新执行Pod安装。 –
不推荐!随着未来'荚install'该设置将被覆盖,所以最好取在Podfile! –
个人而言,我不喜欢这样,这样每次更新我记得我们快速浏览一下,所有的警告,并确保它们是不容忽视的。 –
虽然this other answer将在构建阶段删除警告,但似乎并未完全修复Analyze
阶段(这导致我们的CI构建仍然有问题)。
什么工作对我来说(除了公认的答案)是:
Pods
项目选择的实际Pod-
目标,并点击Build Settings
compiler flags
添加一个新的Other C Flags
与值-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core
(或您需要禁用的任何分析仪) - this answer提供了完整的标志列表来尝试 - 请upvote它!
但是,Xcode 6.3.1中的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
目标设置,这将不起作用。我不知道为什么,但你必须为每个实际的目标设定它。
您还可以在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
由于某些原因,即使在计划中禁用
Analyze
步骤似乎也无效。
转到
Product > Scheme > Manage Schemes
窗口,单击列表中的每个
Pod-*
,然后单击
Edit
按钮。点击左侧列表中的
Build
,然后
取消选中
Analyze
,右侧为
Pod
目标。
我仍然困惑,为什么我不能完全禁用被分析的Pod,尽管我期望它可能与在方案的构建设置中选中的“Find implicit dependencies”有关。不过,如果没有选中,那么应用程序需要发生其他事情才能链接到豆荚。
***注意:***不幸的是,如果您使用.gitignore从存储库中排除Pods和.xcworkspace,这对CI没有帮助。 – RileyE
@RileyE有趣 - 有没有很好的理由从回购中排除这些人?如果是这样,这个页面上的其他技术是否适合你? (我仍然是一个iOS开发的相对新手,所以很想了解更多) – Jedidja
[是否包含它有一个很大的分歧](http://stackoverflow.com/questions/9446644/what-goes-进入 - 您 - gitignore-IF-您选择 - 使用 - 的CocoaPods)。我不喜欢包含它,因为我更愿意确保我的podfile始终准确,并且发现不同用户的Podfile.lock和.xcworkspaces之间存在一些冲突。这只是对具有强烈争议的优点和缺点的用户的偏好。 – RileyE
我该如何加入?目前我使用的s.dependency'Facebook-iOS-SDK' s.inhibit_all_warnings! ,我得到以下错误: 未定义的方法'inhibit_all_warnings!' for# –
KrauseFx
我已经扩展了一些示例以使意图更清晰。 – alloy
我该如何解决以下问题:我希望警告对于某些吊舱是隐藏的,但不是所有警报都隐藏的。 – KrauseFx