前言
随着团队人数增多,工程的复杂度提高,工程文件数变得相当多,清理工程变得越来越复杂。于是,闲暇时写了一个清理工程中未使用的类文件工具。由于工程为 oc 代码,所以工具只适用于 oc 创建的工程。工具测试时间短、用例少难免有不足的地方,有兴趣的朋友使用前记得备份工程!
工具地址: CATClearProjectTool, 欢迎 star、fork、issue。
使用方法
下图为测试工程结构:包含 AppDelegate、ViewController、CATUsedClass、CATUsedClass2、CATUnUsedCLass 以及 test 文件。其中 test 文件和 CATUnUsedCLass 未在工程中使用过。

将测试工程的 .xcodeproj 拖拽到工具中。

点击 search 按钮,文本框将列出所有未被使用的类文件。

点击 Clear 按钮,文本框将显示成功清理的类文件列表。

再次打开工程,能看到已成功清理未使用的类文件【注:工程中默认过滤掉 AppDelegate, ViewController, main 三个类文件的删除】

你也可以加入过滤,如下图过滤掉 CATUnUsedCLass,则即使它在工程中未使用过也不会将它删除(多个过滤文件,使用逗号隔开)。

7.加过滤后清理的结果


原理
读取 project 文件中的文件组织信息,找到工程中所有的类,然后遍历所有类文件的#import 情况, 找出未使用的类文件删除,并删除 project 文件中未使用文件的记录数据。