美文网首页iOS奋斗IOS特技iOS备忘录
iOS清理工程中未使用的类文件工具

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

作者: CatchZeng | 来源:发表于2016-01-23 17:26 被阅读2738次

欢迎访问我的主页:http://catchzeng.com
QQ群:157672725

前言

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

效果

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


测试工程结构测试工程结构

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


拖拽工程到工具拖拽工程到工具

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


搜索结果搜索结果

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


清理后的结果清理后的结果

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


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


加入过滤加入过滤

7.加过滤后清理的结果


加过滤后清理的结果加过滤后清理的结果
清理后的工程结构清理后的工程结构

工具的原理

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

相关文章

网友评论

  • 吃瓜群众呀:....找不到第四步说的click按钮
  • Mister_Leo:根据你的原理(如果#import指的是"#import "ViewController.h"这样的语句),貌似有个漏洞。如果是这样的呢[[NSClassFromString(@"UnusedClass") alloc] init]的呢?遍历所有类文件,根据#import情况是不是会多删掉?
  • zuolingfeng:能稍微优化下么?
    一点search就变大,看不到结果,缩小也找不到地方呀,
    这样的项目要给star,扎心了啊,
  • 0b6ef4c34afa:UI乱了是用的NSTextView 的赋值的string 太长了,设置个maxSize 或者改成ScrollView
    除了UI这块没怎么搞好 总的来说挺好用的 赞一个
  • Inlight先森:swift的文件搜不到?
    CatchZeng:@Dalla尹 oc写的项目,当时没有swift,so...
  • 6b17940db431:我运行了源代码,一开始您的工程的UI是对的,但是输入*.xcodeproj的路径一点“search”,您的工具的UI就乱了,完全看不到结果了!:sob:
    bdf9607da660:缩小一下工具框
  • 墨隐于非:我运行了源代码,一开始您的工程的UI是对的,但是输入*.xcodeproj的路径一点“search”,您的工具的UI就乱了,完全看不到结果了!为什么会这样呢?
    无神:@jacy_Lee 缩小一下,有的时候UI完全乱了,缩小的结果不是很理想!
    bdf9607da660:缩小一下工具框
  • 无神:我运行了源代码,一开始您的工程的UI是对的,但是输入*.xcodeproj的路径一点“search”,您的工具的UI就乱了,完全看不到结果了!:sob:
    Mister_Leo:自己重新布一下局
  • 厚脸皮:我跑了一下,出现了空白
    bdf9607da660:@无神 缩小一下工具框
    无神:您的后来解决了吗?

本文标题:iOS清理工程中未使用的类文件工具

本文链接:https://www.haomeiwen.com/subject/tlsrkttx.html