itools
一个方便iOS开发的工具类。主要是使用Ruby编写,用于进行一些方便的处理,例如字符串查找,LinkMap解析等。
安装
gem install itools
说明
该命令执行的时间与文件夹的大小以及文件多少有关。所以如果有执行停留问题,请耐心等待。
使用
安装之后再终端执行itools,结果如下:
NAME
itools - a collection of tools for ios developer
SYNOPSIS
itools [global options] command [command options] [arguments...]
VERSION
1.0.0
GLOBAL OPTIONS
--help - Show this message
--version - Display the program version
COMMANDS
count_code_line - 统计代码行数
find - 查找无用图片
help - Shows a list of commands or help for one command
parse - 解析linkmap
pre_commit - 通过执行该命令,hook 本地commit,然后进行规范化
search - 在文件夹或文件中查找字符串(或者字符串组)
search_file - 查找文件
search_unuse_class - 查找无用类
size_for - 计算文件或者文件夹占用内存大小
功能1:解析LinkMap
命令:
itools parse LinkMapDemo-LinkMap-normal-arm64.txt (分析文件夹)
# or
itools parse /user/Desk/LinkMapDemo-LinkMap-normal-arm64.txt
解析结果实例:
AppDelegate.o 8.50KB
ViewController.o 735B
LinkMapDemo.app-Simulated.xcent 386B
main.o 192B
linker synthesized 128B
libobjc.tbd 120B
Foundation.tbd 24B
UIKit.tbd 24B
Total Size:10.07KB
For more information, see:https://www.cnblogs.com/zhanggui/p/9991455.html
也可以根据linkmap按照folder解析,即传入第二个参数为分析的引用库目录,例如想查看AFNetWorking中各个文件夹(内容)所占二进制的大小。
功能2:字符串查找
命令
itools search folder/file str/strs
例如:
1.单字符查找:查找number.txt中包含7的行
itools search number.txt 7
将会把number.txt中包含7的行输出,内容包括:文件名(这里是number.txt)、包含字符串(这里是7)、文件所在目录、查找内容所在行、查找结果。
2.多字符查找:查找number.txt中包含7,8的行
itools search number.txt 7,8
将会把number.txt中包含7、8的行记录到excel表中,表内容和上面的展示一样。
3.在文件夹所有文件中查找某个字符串:
itools search /Users/zhanggui/zhanggui/my-dev MAYGO
将会把/Users/zhanggui/zhanggui/my-dev文件夹中所有的文件进行遍历,然后找到包含MAYGO字符串的类,并生成excel文件。
4.在文件夹所有文件文件中查找某些字符串:
itools search /Users/zhanggui/zhanggui/Ruby/ 3434,Scott
将会在/Users/zhanggui/zhanggui/Ruby/中查找所有包含3434和Scott的文件,并生成excel。
功能3:查找工程中无用的图片
命令
itools find /Users/zhanggui/zhanggui/tdp
这里的目录代表项目的根目录,查找原理为:
先将目录下面所有的图片(仅支持png、jpg、gif)找到,然后遍历所有.m文件。查找出没有使用的图片。
注:这里查找不太准确,仅供参考,因为有可能有的图片不是通过.m文件使用的。而有的图片仅仅是为了配置(例如1024*1024),所以还是不要依赖该工具的图片查找,找到之后可以自行再次确认一下。
功能4:计算文件大小
命令
itools size_for /Users/zhanggui/zhanggui/my 1000
or
itools size_for /Users/zhanggui/zhanggui/my
计算sizeFor后面跟的参数内容所占内存大小,如果参数为文件路径,则计算文件大小,如果是文件夹,会遍历所有文件,然后计算大小。第二个参数为计算系数(这个系数为1MB = 1024KB中的1024;windows为1024,mac为1000,不传默认为1024)。
在中途会提示你输入要查找的文件后缀,不输入任何则表示查找文件夹下的所有文件,输入后缀则会计算特定文件类型包含的大小,例如:png,jpg,gif,这样会计算出文件夹中三种类型格式的图片所占有内存的大小。
功能5:查找文件
命令
itools search_file /Users/zhanggui/zhanggui/my-dev/search_vc ViewController.m #第二个参数现在只支持单字符串查找
查找/Users/zhanggui/zhanggui/my-dev/search_vc文件夹下所有的文件名包含ViewController.m的文件,并且输出到excel表格
功能6:查找工程中无用的文件
命令
itools search_unuse_class /Users/zhanggui/zhanggui/my-dev/search_vc
参数为工程所在的文件夹,例如/Users/zhanggui/zhanggui/my-dev/search_vc。查出的结果可能包含category或者extension,请拿结果作为参考,不作为最终要删除的文件。
功能7:统计代码行数
命令
itools count_code_line 文件路径/文件夹路径
#例如
itools count_code_line /User/zhanggui/mydemoapp #统计mydemoapp项目的代码行数
该工具只统计了.m、.mm、.h、.cpp这几个文件,并且不包含单行注释以及空行。
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/ScottZg/itools. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the
FBI Warning
如有误删而导致的线上问题,本人概不负责!