iOS清理工程中未使用的类文件工具

ios

前言

随着团队人数增多,工程的复杂度提高,工程文件数变得相当多,清理工程变得越来越复杂。于是,闲暇时写了一个清理工程中未使用的类文件工具。由于工程为 oc 代码,所以工具只适用于 oc 创建的工程。工具测试时间短、用例少难免有不足的地方,有兴趣的朋友使用前记得备份工程!

工具地址: CATClearProjectTool, 欢迎 starforkissue

使用方法

下图为测试工程结构:包含 AppDelegate、ViewController、CATUsedClass、CATUsedClass2、CATUnUsedCLass 以及 test 文件。其中 test 文件和 CATUnUsedCLass 未在工程中使用过。

测试工程结构

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

拖拽工程到工具

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

搜索结果

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

清理后的结果

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

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

加入过滤

7.加过滤后清理的结果

加过滤后清理的结果

清理后的工程结构

原理

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

CatchZeng
Written by CatchZeng Follow
AI (Machine Learning) and DevOps enthusiast.