FauxPas Mac版是一款把“Xcode项目审查”做得比编译器更细的静态分析工具。编译器关心的是代码能不能编过,FauxPas关心的是代码写得对不对、资源有没有遗漏、本地化有没有缺口、版本控制有没有隐患。它不局限于.swift或.m文件,而是扫描整个Xcode项目的所有元素,把那些不会导致编译失败、但会在运行时或维护阶段制造麻烦的问题提前翻出来。对于刚入门的开发者,它是一个可以按图索骥的最佳实践清单;对于有经验的开发者,它是一个能覆盖盲区的自动化审查环节。

FauxPas怎么用
1、打开FauxPas,选择需要检查的Xcode项目。软件会询问是否通过workspace打开,并让你指定workspace和scheme。scheme需要与你想要检查的target对应,选错scheme会导致检查范围偏离目标。
2、进入配置界面,选择target和config。在Rules区域,可以从92条(部分文档记载为111条)规则中挑选需要启用的项目。默认会勾选Recommended类规则,主要覆盖代码风格和潜在危险(如垂悬指针、图片资源问题)。
3、点击Start Checking开始扫描。检查过程会先倒计时15秒,然后逐步输出扫描步骤,最终以分类列表呈现诊断结果。你可以按规则类别、文件或严重程度筛选结果。
4、如果习惯在终端工作,可以安装CLI组件后使用fauxpas check-xcode命令进行命令行检查。CLI同样支持规则筛选、配置文件和诊断过滤,适合嵌入CI或自动化脚本。
5、FauxPas也可以作为Xcode的Run Script在每次build时自动运行。在target中新建一个Run Script Phase,填入官方提供的脚本片段,即可在编译过程中同步输出检查结果,不需要手动打开GUI应用。

FauxPas的核心规则分类有哪些
1、Recommended:默认启用的规则集,主要检查代码风格和潜在危险,包括垂悬指针、图片资源缺失或重复、非Retina与Retina图尺寸不匹配等。对于第一次使用的用户,从Recommended开始可以快速获得有价值的反馈。
2、Resources:聚焦资源文件用法。FauxPas包含12种规则来检测资源文件相关的错误,比如文件名参数是否有问题、重命名文件后相关代码是否同步更新、是否存在未被使用的图片资源。
3、Localization:包含10种规则,用于发现本地化环节的疏漏,例如已本地化的变量是否被使用、翻译格式参数是否匹配等。对于需要多语言支持的项目,这一组规则可以减少上线后的本地化缺陷。
4、Style与BestPractice:Style类规则检查命名规范、点语法使用、@property声明方式等代码风格约束;BestPractice类规则则涵盖block是否应使用typedef定义、IBOutlet是否不应出现在公共头文件等最佳实践。这两类规则在团队协作和代码审查场景中尤其有用。
5、VCS(版本控制):包含4种规则,检查项目是否引用了版本控制根之外的文件,或是否引用了被VCS忽略的文件。对于使用Git或SVN管理的大型项目,这类规则可以避免因文件引用错位导致的构建问题。

FauxPas特色
1、项目级而非文件级的检查视野:FauxPas的扫描对象是整个Xcode项目,而不是单个源码文件。这意味着它能发现那些跨文件、跨资源类型的问题,比如重命名图片后代码中的引用没有同步更新、本地化字符串在代码中存在但资源文件中缺失、版本控制忽略的文件被项目错误引用。这些问题的共同特点是不会导致编译失败,但会在运行时或维护阶段制造麻烦。
2、规则可按tag筛选和配置:92条规则被组织在Resources、Style、BestPractice、Localization、VCS等tag下,你可以按tag批量启用或禁用,也可以针对单条规则调整参数。配置文件可以保存为JSON或Property List格式,方便在不同项目或团队成员之间复用同一套检查标准。
3、GUI、CLI和Xcode集成三种运行方式:FauxPas不强制你离开习惯的工作流。喜欢图形界面的用户可以在GUI中浏览和筛选结果;习惯终端的用户可以用CLI嵌入脚本;希望“每次build都自动检查”的用户可以把FauxPas挂到Xcode的Run Script中。诊断结果支持JSON、XML和Property List输出,方便与外部工具链对接。
4、面向学习与代码审查的辅助价值:FauxPas的规则本身带有教学性质——它告诉你“为什么垂悬指针危险”“为什么IBOutlet不应放在公共头文件”“为什么block应该用typedef定义”。对于正在建立代码规范的团队或刚入门的开发者,这些规则提供了一份可执行的检查清单,而不只是一份需要人工记忆的文档。
FauxPas功能
1、项目级静态分析:扫描整个Xcode项目(而非仅代码文件),检查潜在bug、资源用法、本地化、版本控制和代码风格问题。
2、92条可配置规则:规则按Resources、Style、BestPractice、Localization、VCS等tag分类,支持按tag筛选、单条排除和参数调整。
3、GUI与CLI双界面:提供图形用户界面和命令行接口,CLI支持fauxpas check-xcode等命令,适合脚本和自动化流程。
4、Xcode Run Script集成:可在Xcode的target中添加Run Script Phase,在每次build时自动运行检查并输出诊断。
5、诊断输出与外部工具对接:诊断结果可导出为JSON、XML或Property List格式,便于用自定义脚本处理或集成到其他工具链。
6、配置文件复用:规则选择和参数配置可保存为JSON或Property List文件,在不同项目或团队成员之间共享同一套检查标准。
7、编辑器跳转:在检查结果中可以直接在当前的几个流行编辑器中打开对应文件,定位到问题所在行。
FauxPas常见问题
Q:FauxPas支持Swift吗?
A:FauxPas的核心分析能力主要面向Objective-C,对Swift的原生支持有限。部分搜索结果将FauxPas描述为“Objective-C、Swift和C/C++的静态分析器”,但其规则集和文档主要围绕Objective-C项目设计。如果你的项目以Swift为主,SwiftLint和Clang-Tidy是更对口的工具;FauxPas更适合仍然大量使用Objective-C的存量项目或混合项目。
Q:安装后提示版本不兼容或build失败怎么办?
A:FauxPas 1.7的最后更新距今时间较长,在较新的Xcode和macOS版本上可能存在兼容性问题。如果GUI或CLI报错,先检查FauxPas使用的Clang版本是否与当前Xcode的Clang版本匹配(fauxpas -v与xcrun clang -v对比)。版本不一致时,FauxPas可能无法正确解析新Xcode生成的项目文件。在兼容的旧版Xcode上运行,或改用Clang-Tidy等活跃维护的工具,是更稳妥的应对方式。
Q:FauxPas的92条和111条规则哪个准确?
A:不同来源的记载存在差异。较早的文档和部分百科条目提到92条规则,另一些使用指南记录为111条。这种差异可能来自版本迭代或统计口径的不同(是否包含子规则或配置项)。在FauxPas 1.7的规则选择界面中,实际可用的规则数量以软件内显示为准。无论具体数字如何,规则都按tag分类,核心分类(Resources、Style、BestPractice等)是一致的。













