2.3. 在 Xcode 中运行分析器

从 Xcode 3.2 开始,用户可以直接在 Xcode 中运行静态分析器 直接在 Xcode 中

它直接与 Xcode 构建系统集成,并在 Xcode 的编辑器中直接显示分析结果。

2.3.1. 我可以在 Xcode 中使用开源分析器版本吗?

是的。下面包含说明。

../../_images/analyzer_xcode.png

在 Xcode 中查看静态分析器结果

2.3.2. 关键功能:

  • 集成工作流程:结果集成到 Xcode 中。无需使用单独的工具,只需一次按键或单击鼠标即可激活分析器。

  • 透明度:与 Xcode 项目(包括 iPhone 项目)无缝配合。

  • 缺点:不适用于非 Xcode 项目。对于那些项目,请考虑 命令行使用:scan-build 和 CodeChecker

2.3.3. 入门

Xcode 可从 Apple 的 Mac App Store 免费下载,并提供了 使用分析器的说明

2.3.4. 在 Xcode 中使用开源分析器版本

默认情况下,Xcode 使用与它捆绑在一起的 clang 版本来分析您的代码。可以更改 Xcode 的行为,以便使用备用版本的 clang 用于此目的,同时继续使用与 Xcode 捆绑在一起的 clang 来编译项目。

2.3.5. 为什么要尝试开源版本?

使用开源分析器版本(在本网站上提供)的优点是它们通常比与 Xcode 捆绑在一起的分析器更新,因此可能包含错误修复、新检查,或者只是更好的分析。

另一方面,新检查可能是实验性的,结果质量参差不齐。鼓励用户在遇到误报或其他问题时提交任何版本分析器的错误报告: 提交错误和功能请求

2.3.6. set-xcode-analyzer

从分析器版本 checker-234 开始,分析器版本包含一个名为 set-xcode-analyzer 的命令行实用程序,允许用户更改 Xcode 用于分析的 clang 副本

$ set-xcode-analyzer -h
Usage: set-xcode-analyzer [options]

Options:
  -h, --help            show this help message and exit
  --use-checker-build=PATH
                        Use the Clang located at the provided absolute path,
                        e.g. /Users/foo/checker-1
  --use-xcode-clang     Use the Clang bundled with Xcode

在操作上,set-xcode-analyzer 会编辑 Xcode 的配置文件,使其指向使用您为静态分析指定的 clang 版本。在这个模型中,它提供两种基本模式

  • –use-xcode-clang: 将 Xcode(恢复)切换为使用与它捆绑在一起的 clang 用于静态分析。

  • –use-checker-build: 将 Xcode 切换为使用由指定分析器版本提供的 clang

2.3.7. 需要注意的事项

  • 您应该在运行 set-xcode-analyzer 之前退出 Xcode。

  • 您需要在 ``sudo`` 下运行 set-xcode-analyzer,以便拥有修改 Xcode 配置文件的写入权限。

2.3.8. 示例

示例 1:告诉 Xcode 使用 checker-235

$ pwd
/tmp
$ tar xjf checker-235.tar.bz2
$ sudo checker-235/set-xcode-analyzer --use-checker-build=/tmp/checker-235

请注意,您通常不会在 /tmp 中安装分析器版本,但此示例的重点是 set-xcode-analyzer 只需要一个解压缩的分析器版本的完整路径。

示例 2:告诉 Xcode 使用 clang 的特定版本

$ sudo set-xcode-analyzer --use-checker-build=~/mycrazyclangbuild/bin/clang

示例 3:将 Xcode 重置为默认行为

$ sudo set-xcode-analyzer --use-xcode-clang